gets(3) Library Functions Manual gets(3) NAZWA gets - pobiera lancuch ze standardowego wejscia (PRZESTARZALE) BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include [[przestarzale]] char *gets(char *s); OPIS Prosze nigdy nie uzywac tej funkcji. gets() odczytuje linie z stdin do bufora wskazywanego przez s az do konczacego znaku nowej linii lub EOF, ktory jest zastepowany przez bajt null ('\0'). Nie jest sprawdzane przepelnienie bufora (zobacz USTERKI ponizej). WARTOSC ZWRACANA gets() zwraca s w przypadku pomyslnego zakonczenia lub NULL w przypadku bledu lub wystapienia konca pliku przed odczytaniem jakiegokolwiek znaku. Jednak z powodu braku sprawdzenia przed przepelnieniem bufora nie ma gwarancji, ze funkcja kiedykolwiek powroci. ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |gets() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ STANDARDY POSIX.1-2008. HISTORIA C89, POSIX.1-2001. LSB uznaje gets() za wychodzaca z uzycia. POSIX.1-2008 oznacza ja jako przestarzala. ISO C11 usuwa definicje gets() z jezyka C i od glibc 2.16 pliki naglowkowe glibc nie zawieraja deklaracji tej funkcji, jesli zdefiniowane jest makro _ISOC11_SOURCE. USTERKI Nigdy nie nalezy uzywac gets(). Funkcja ta jest szczegolnie niebezpieczna w uzyciu, poniewaz bez znajomosci danych z gory nie jest mozliwe okreslenie, ile znakow gets() przeczyta, i poniewaz gets() bedzie kontynuowac umieszczanie znakow po przekroczeniu konca bufora. Bylo to wykorzystywane do lamania zabezpieczen komputerow. Zamiast gets() nalezy korzystac z fgets(). Wiecej informacji znajduje sie w CWE-242 (aka "Use of Inherently Dangerous Function") at http://cwe.mitre.org/data/definitions/242.html ZOBACZ TAKZE 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) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Przemek Borys , Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.18 8 lutego 2026 r. gets(3)