TTYNAME(3) | Руководство программиста Linux | TTYNAME(3) |
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, а в случае ошибки — номер ошибки.
Описание терминов данного раздела смотрите в 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.
2017-05-03 | Linux |