gets(3) Library Functions Manual gets(3) NAZWA gets - pobiera lancuch ze standardowego wejscia (PRZESTARZALE) BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include [[deprecated]] 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 deprecates gets(). POSIX.1-2008 marks gets() obsolescent. ISO C11 removes the specification of gets() from the C language, and since glibc 2.16, glibc header files don't expose the function declaration if the _ISOC11_SOURCE feature test macro is defined. 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 Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: 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.06 31 pazdziernika 2023 r. gets(3)