Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

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

БИБЛИОТЕКА

       Стандартная библиотека языка C (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  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       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.

ОШИБКИ

       Никогда  не  используйте  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> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                  15 июня 2024 г.                                         gets(3)