Linux repositories inspector
Linux
2017-05-03
Aliases: ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3), ttyname_r(3)

man-pages-ru

Russian 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

ИМЯ

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

ОБЗОР

#include <unistd.h>

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

ОПИСАНИЕ

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

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

При успешном выполнении функция ttyname() возвращает указатель на имя пути. В случае ошибки возвращается NULL, в errno устанавливается код ошибки. При успешном выполнении функция ttyname_r() возвращает 0, а в случае ошибки — номер ошибки.

ОШИБКИ

EBADF Неправильный дескриптор файла.
ENODEV Файловые дескрипторы ссылаются на устройство подчинённого псевдотерминала, но соответствующий путь невозможно найти (смотрите ЗАМЕЧАНИЯ).
ENOTTY Файловый дескриптор указывает не на устройство терминала.
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.

СМОТРИТЕ ТАКЖЕ

⇧ Top