gets






gets − pobiera ÅaÅcuch ze standardowego wejÅcia
(PRZESTARZAÅE)


#include <stdio.h>

char *gets(char *s);

ProszÄ nigdy nie używaÄ tej funkcji.

gets() odczytuje liniÄ z stdin do bufora wskazywanego przez
s aż do koÅczÄcego znaku nowej linii lub EOF, który jest
zastÄpowany przez bajt null ('\0'). Nie jest sprawdzane
przepeÅnienie bufora (zobacz BÅÄDY IMPLEMENTACJI poniżej).

gets() zwraca s w przypadku pomyÅlnego zakoÅczenia lub NULL
w przypadku bÅÄdu lub wystÄpienia koÅca pliku przed
odczytaniem jakiegokolwiek znaku. Jednak z powodu braku
sprawdzenia przed przepeÅnieniem bufora nie ma gwarancji,
że funkcja kiedykolwiek powróci.

Informacje o pojÄciach używanych w tym rozdziale można
znaleÅºÄ w podrÄczniku attributes(7).

┌──────────┬────────────────────────┬─────────┐
│Interfejs Atrybut                WartoÅÄ │
├──────────┼────────────────────────┼─────────┤
│gets()    BezpieczeÅstwo wÄtkowe MT−Safe │
└──────────┴────────────────────────┴─────────┘


C89, C99, POSIX.1−2001.

LSB uznaje gets() za wychodzÄcÄ z użycia. POSIX.1−2008
oznacza jÄ jako przestarzaÅÄ. ISO C11 usuwa definicjÄ gets()
z jÄzyka C i od wersji 2.16 biblioteki glibc pliki
nagÅówkowe nie zawierajÄ deklaracji tej funkcji, jeÅli
zdefiniowane jest makro _ISOC11_SOURCE.

Nigdy nie należy używaÄ gets(). Funkcja ta jest
szczególnie niebezpieczna w użyciu, ponieważ bez
znajomoÅci danych z góry nie jest możliwe okreÅlenie, ile
znaków gets() przeczyta, i ponieważ gets() bÄdzie
kontynuowaÄ umieszczanie znaków po przekroczeniu koÅca
bufora. ByÅo to wykorzystywane do Åamania zabezpieczeÅ
komputerów. Zamiast gets() należy korzystaÄ z fgets().

WiÄcej informacji znajduje siÄ w CWE−242 (aka "Use of
Inherently Dangerous Function") at
http://cwe.mitre.org/data/definitions/242.html













                             ‐2‐


read(2), write(2), ferror(3), fgetc(3), fgets(3), fgetwc(3),
fgetws(3), fopen(3), fread(3), fseek(3), getline(3),
getwchar(3), puts(3), scanf(3), ungetwc(3),
unlocked_stdio(3), feature_test_macros(7)

Angielska wersja tej strony pochodzi z wydania 4.07 projektu
Linux man−pages. Opis projektu, informacje dotyczÄce
zgÅaszania bÅÄdów oraz najnowszÄ wersjÄ oryginaÅu można
znaleÅºÄ pod adresem https://www.kernel.org/doc/man−pages/.

Autorami polskiego tÅumaczenia niniejszej strony podrÄcznika
man sÄ: Przemek Borys (PTM) <pborys@dione.ids.pl>, Andrzej
Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl>, Robert
Luberda <robert@debian.org> i MichaÅ KuÅach
<michal.kulach@gmail.com>.

     Polskie tÅumaczenie jest czÄÅciÄ projektu manpages‐pl;
uwagi, pomoc, zgÅaszanie bÅÄdów na stronie
http://sourceforge.net/projects/manpages‐pl/. Jest zgodne z
wersjÄ  4.07 oryginaÅu.