grantpt -
разрешает
доступ для
подчинённому
псевдотерминалу
Standard C library (
libc,
-lc)
#include <stdlib.h>
int grantpt(int fd);
grantpt():
Начиная с glibc 2.24:
_XOPEN_SOURCE >= 500
В версии glibc 2.23 и более ранних:
_XOPEN_SOURCE
The
grantpt() function changes the mode and owner of the slave
pseudoterminal device corresponding to the master pseudoterminal referred to
by the file descriptor
fd. The user ID of the slave is set to the real
UID of the calling process. The group ID is set to an unspecified value (e.g.,
tty). The mode of the slave is set to 0620 (crw--w----).
Поведение
grantpt() не
определено,
если
установлен
обработчик
сигналов
для
перехвата
сигналов
SIGCHLD.
When successful,
grantpt() returns 0. Otherwise, it returns -1 and sets
errno to indicate the error.
- EACCES
- Невозможно
получить
доступ к
соответствующему
подчинённому
псевдотерминалу.
- EBADF
- Аргумент
fd не
является
правильным
открытым
файловым
дескриптором.
- EINVAL
- Значение
fd
корректно,
но не
связано с
основным
псевдотерминалом.
grantpt() is provided since glibc 2.1.
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
grantpt() |
Безвредность
в нитях |
MT-Safe locale |
POSIX.1-2001, POSIX.1-2008.
Является
частью
поддержки
псевдотерминалов
UNIX 98 (смотрите
pts(4)).
Многие
системы
реализуют
эту
функцию
через
вспомогательный
исполняемый
файл с
установленным
битом SUID,
называемый
«pt_chown».
Благодаря
файловой
системе Linux devpts
(начиная с Linux 2.2),
ядро
обычным
образом
устанавливает
корректные
значения
владельца
и права на
подчинённый
псевдотерминал
когда
открывается
основной (
posix_openpt(3)),
поэтому
grantpt()
делать
ничего не
нужно.
Таким
образом,
подобный
вспомогательный
файл не
требуется (
и
действительно,
это
значение
пусто при
сборке glibc,
которая
используется
во многих
системах).
open(2),
posix_openpt(3),
ptsname(3),
unlockpt(3),
pts(4),
pty(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitry Bolkhovskikh
<
[email protected]>, Vladislav <
[email protected]>,
Yuri Kozlov <
[email protected]> и
Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]