ttyname, ttyname_r -
возвращает
имя
терминала
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 <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]