Linux repositories inspector
GNU
2015-03-02
Aliases: fgetc(3), fgetc(3), fgetc(3), fgetc(3), fgetc(3), fgets(3), fgets(3), fgets(3), fgets(3), fgets(3), getc(3), getc(3), getc(3), getc(3), getc(3), getchar(3), getchar(3), getchar(3), getchar(3), getchar(3), ungetc(3), ungetc(3), ungetc(3), ungetc(3), ungetc(3)

manpages-pl-dev

Polish man pages for developers

man-pages-pl

Polish man pages from the Linux Documentation Project

manpages-dev

Manual pages about using GNU/Linux for development

man-pages

Linux kernel and C library user-space interface documentation

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 (\(aq\0\(aq). 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).
Interfejs Atrybut Wartość
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

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) <>, Andrzej Krzysztofowicz (PTM) <>, Robert Luberda <> i Michał Kułach <>.
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.
⇧ Top