Provided by: manpages-pl-dev_4.13-4_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.10 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  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.

GNU                                            15 września 2017 r.                                       GETS(3)