Provided by: manpages-ru-dev_4.21.0-2_all
ИМЯ
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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.