Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       gets - получает строку из стандартного потока ввода (УСТАРЕЛА)

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <stdio.h>

       [[deprecated]] char *gets(char *s);

ОПИСАНИЕ

       Никогда не используйте эту функцию.

       gets()  reads a line from stdin into the buffer pointed to by s until either a terminating
       newline or EOF, which it replaces with a null byte ('\0').  No check for buffer overrun is
       performed (see BUGS below).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При  успешном  выполнении функция gets() возвращает s и NULL при ошибке или если достигнут
       конец файла, а символы остались несчитанными. Тем не менее, из-за невозможности  проверить
       переполнение буфера, нет гарантии, что функция вообще что-нибудь сможет вернуть.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).

       ┌───────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ИнтерфейсАтрибутЗначение │
       ├───────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │gets()                                                 │ Безвредность в нитях │ MT-Safe  │
       └───────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       C99, 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.

ДЕФЕКТЫ

       Никогда  не  используйте  gets(),  потому  что  без  предварительного знакомства с данными
       невозможно узнать, какое количество символов считает gets(), а также  потому,  что  gets()
       будет  продолжать  заносить символы в буфер даже по достижении его конца, что представляет
       собой большую  опасность.  Эта  функция  использовалась  для  взлома  систем  безопасности
       компьютера. Вместо этой функции используйте fgets().

       Подробное  описание  смотрите  в  CWE-242  (или «Use of Inherently Dangerous Function») на
       http://cwe.mitre.org/data/definitions/242.html

СМ. ТАКЖЕ

       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)

ПЕРЕВОД

       Русский   перевод   этой    страницы    руководства    был    сделан    Azamat    Hackimov
       <azamat.hackimov@gmail.com>,    Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,   Vladislav
       <ivladislavefimov@gmail.com>,   Yuri   Kozlov   <yuray@komyakino.ru>   и    Иван    Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.