PTSNAME(3)

ИМЯ
ptsname, ptsname_r - возвращает имя подчинённого псевдо-терминала

ОБЗОР
#define _XOPEN_SOURCE       /* Смотрите feature_test_macros(7) */
#include <stdlib.h>

char *ptsname(int fd);

#define _GNU_SOURCE         /* Смотрите feature_test_macros(7) */
#include <stdlib.h>

int ptsname_r(int fd, char *buf, size_t buflen);

ОПИСАНИЕ
Функция ptsname() возвращает имя устройства подчинённого псевдо-терминала, соответствующего главному, который указан в fd. Функция ptsname_r() является реентерабельным эквивалентном ptsname(). Она сохраняет имя устройства подчинённого псевдо-терминала в виде строки (завершающейся null) в буфер, указанный в buf. В аргументе buflen задаётся количество байт, доступных в buf.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении ptsname() возвращает указатель на строку в статическом хранилище, которая будет перезаписана последующими вызовами. Данный указатель не нужно освобождать. При ошибке возвращается NULL. При успешном выполнении ptsname_r() возвращает 0. При ошибке возвращается ненулевое значение и в errno записывается номер ошибки.

ОШИБКИ

EINVAL
    (только ptsname_r()) Значение buf равно NULL.

ENOTTY
    Значение fd не ссылается на устройство главного псевдо-терминала.

ERANGE
    (только ptsname_r()) Значение buf слишком мало.

ВЕРСИИ
Функция ptsname() появилась в glibc версии 2.1.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
ptsname() | Безвредность в нитях | MT-Unsafe race:ptsname
ptsname_r() | Безвредность в нитях | MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008. Функция ptsname() является частью поддержки псевдо-терминалов UNIX 98 (смотрите pts(4)). Функция ptsname_r() является расширением Linux. Версия этой функции описана для Tru64 и HP-UX, но в их реализациях при ошибке возвращается -1, а в errno записывается номер ошибки. Не используйте эту функцию в переносимых программах.

СМОТРИТЕ ТАКЖЕ
grantpt(3), posix_openpt(3), ttyname(3), unlockpt(3), pts(4), pty(7)