Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       openpty, login_tty, forkpty - функции для работы с терминалом

БИБЛИОТЕКА

       System utilities library (libutil, -lutil)

ОБЗОР

       #include <pty.h>

       int openpty(int *amaster, int *aslave, char *name,
                     const struct termios *termp,
                     const struct winsize *winp);
       pid_t forkpty(int *amaster, char *name,
                     const struct termios *termp,
                     const struct winsize *winp);

       #include <utmp.h>

       int login_tty(int fd);

ОПИСАНИЕ

       Функция  openpty()  ищет  доступный  псевдотерминал и возвращает файловые дескрипторы для его основного и
       подчинённого устройств в amaster и aslave. Если name не равно NULL, то имя файла подчинённого  устройства
       возвращается  в  name.  Если  termp  не  равно NULL, то параметры терминала подчинённого устройства будут
       установлены в значения, указанные в  termp.  Если  winp  не  равно  NULL,  то  размер  окна  подчинённого
       устройства будет установлен согласно значениям, указанным в winp.

       The  login_tty()   function  prepares  for  a login on the terminal referred to by the file descriptor fd
       (which may be a real terminal device, or the slave of a pseudoterminal  as  returned  by  openpty())   by
       creating  a new session, making fd the controlling terminal for the calling process, setting fd to be the
       standard input, output, and error streams of the current process, and closing fd.

       The forkpty()  function combines openpty(), fork(2), and login_tty()  to create a new  process  operating
       in  a  pseudoterminal.   A  file descriptor referring to master side of the pseudoterminal is returned in
       amaster.  If name is not NULL, the buffer it points to is used to return the filename of the slave.   The
       termp  and  winp  arguments,  if  not NULL, will determine the terminal attributes and window size of the
       slave side of the pseudoterminal.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       Если вызов openpty(), login_tty() или forkpty()  завершается  с  ошибкой,  то  возвращается  -1  и  errno
       указывает  на  тип  ошибки.  Иначе,  openpty(),  login_tty() и дочерний процесс forkpty() возвращают 0, и
       родительский процесс forkpty() возвращает ID дочернего процесса.

ОШИБКИ

       Вызов openpty() завершается ошибкой если:

       ENOENT Нет доступных терминалов.

       Завершается ошибкой функция login_tty(), если ioctl(2)  не  может  назначить  fd  управляющему  терминалу
       вызываемого процесса.

       Завершается ошибкой функция forkpty(), если не сработает хотя бы одна из функций openpty() или fork(2).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌───────────────────────────────────────────────────────┬──────────────────────┬────────────────────────┐
       │ ИнтерфейсАтрибутЗначение               │
       ├───────────────────────────────────────────────────────┼──────────────────────┼────────────────────────┤
       │ forkpty(), openpty()                                  │ Безвредность в нитях │ MT-Safe locale         │
       ├───────────────────────────────────────────────────────┼──────────────────────┼────────────────────────┤
       │ login_tty()                                           │ Безвредность в нитях │ MT-Unsafe race:ttyname │
       └───────────────────────────────────────────────────────┴──────────────────────┴────────────────────────┘

СТАНДАРТЫ

       BSD.

ИСТОРИЯ

       Модификаторы const были добавлены в аргументы указателей на структуры openpty() и forkpty() в glibc 2.8.

       Before  glibc  2.0.92,  openpty()   returns  file  descriptors for a BSD pseudoterminal pair; since glibc
       2.0.92, it first attempts to open a UNIX 98  pseudoterminal  pair,  and  falls  back  to  opening  a  BSD
       pseudoterminal pair if that fails.

ОШИБКИ

       Невозможно  определить  сколько  места должно быть зарезервировано для name. Поэтому, вызов openpty() или
       forkpty() со значением name не равным NULL может быть небезопасен.

СМОТРИТЕ ТАКЖЕ

       fork(2), ttyname(3), pty(7)

ПЕРЕВОД

       Русский перевод этой страницы  руководства  разработал(и)  Azamat  Hackimov  <azamat.hackimov@gmail.com>,
       Konstantin    Shvaykovskiy   <kot.shv@gmail.com>,   Yuri   Kozlov   <yuray@komyakino.ru>,   Иван   Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                       openpty(3)