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

ИМЯ

       ttyname, ttyname_r - возвращает имя терминала

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <unistd.h>

       char *ttyname(int fd);
       int ttyname_r(int fd, char buf[.buflen], size_t buflen);

ОПИСАНИЕ

       Функция  ttyname()  возвращает  указатель  на  завершаемый нулевым символом путь устройства терминала, на
       котором был открыт файловый дескриптор fd, или NULL в случае ошибки (например, если  fd  не  подключен  к
       терминалу).  Возвращаемое значение может указывать на статические данные, которые могут быть перезаписаны
       при следующем вызове. Функция ttyname_r() сохраняет имя пути в буфере buf длиной buflen.

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

       The function ttyname()  returns a pointer to a pathname on success.  On  error,  NULL  is  returned,  and
       errno  is set to indicate the error.  The function ttyname_r()  returns 0 on success, and an error number
       upon error.

ОШИБКИ

       EBADF  Неправильный дескриптор файла.

       ENODEV fd refers to a slave pseudoterminal device but the corresponding pathname could not be found  (see
              NOTES).

       ENOTTY fd does not refer to a terminal device.

       ERANGE (ttyname_r()) Значение buflen мало для хранения имени пути.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌───────────────────────────────────────────────────────┬──────────────────────┬────────────────────────┐
       │ ИнтерфейсАтрибутЗначение               │
       ├───────────────────────────────────────────────────────┼──────────────────────┼────────────────────────┤
       │ ttyname()                                             │ Безвредность в нитях │ MT-Unsafe race:ttyname │
       ├───────────────────────────────────────────────────────┼──────────────────────┼────────────────────────┤
       │ ttyname_r()                                           │ Безвредность в нитях │ MT-Safe                │
       └───────────────────────────────────────────────────────┴──────────────────────┴────────────────────────┘

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, 4.2BSD.

ЗАМЕЧАНИЯ

       Процесс,  сохранивший  файловый дескриптор, указывающий на устройство pts(4), открытым при переключении в
       другое  пространство  имён  монтирования,  в  котором  используется  другой  экземпляр  /dev/ptmx,  может
       неожиданно  обнаружить, что существует путь устройства с тем же именем как у этого файлового дескриптора.
       Однако данный путь указывает на другое устройство  и  поэтому  не  может  использоваться  для  доступа  к
       устройству,  на  который  указывает  файловый  дескриптор.  Вызов  ttyname()  или  ttyname_r() с файловым
       дескриптором в новом пространстве имён монтирования приведёт к  тому,  что  эти  функции  вернут  NULL  и
       присвоят errno значение ENODEV.

СМ. ТАКЖЕ

       tty(1), fstat(2), ctermid(3), isatty(3), pts(4)

ПЕРЕВОД

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

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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

Linux man-pages 6.03                           15 декабря 2022 г.                                     ttyname(3)