Provided by: manpages-pl-dev_4.15.0-9_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

       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  5.13  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  są:  Przemek  Borys
       <pborys@dione.ids.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>,  Robert  Luberda
       <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją. Bliższe informacje o warunkach licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   lub   nowszej.   Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.