Provided by: manpages-pl-dev_0.7-1_all bug

NAZWA

       gets - pobiera łańcuch ze standardowego wejścia (PRZESTARZAŁE)

SKŁADNIA

       #include <stdio.h>

       char *gets(char *s);

OPIS

       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).

WARTOŚĆ ZWRACANA

       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.

ATRYBUTY

       Informacje   o   pojęciach   używanych   w  tym  rozdziale  można  znaleźć  w  podręczniku
       attributes(7).

       ┌──────────┬────────────────────────┬─────────┐
       │InterfejsAtrybutWartość │
       ├──────────┼────────────────────────┼─────────┤
       │gets()    │ Bezpieczeństwo wątkowe │ MT-Safe │
       └──────────┴────────────────────────┴─────────┘

ZGODNE Z

       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.

BŁĘDY IMPLEMENTACJI

       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

ZOBACZ TAKŻE

       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)

O STRONIE

       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/.

TŁUMACZENIE

       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.