.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) OpenBSD Group .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-3-Clause .\" .\" Converted into a manpage again by Martin Schulze .\" .\" Added -lutil remark, 030718 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH openpty 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ openpty, login_tty, forkpty \- функции для работы с терминалом .SH LIBRARY System utilities library (\fIlibutil\fP, \fI\-lutil\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint openpty(int *\fP\fIamaster\fP\fB, int *\fP\fIaslave\fP\fB, char *\fP\fIname\fP\fB,\fP \fB const struct termios *\fP\fItermp\fP\fB,\fP \fB const struct winsize *\fP\fIwinp\fP\fB);\fP \fBpid_t forkpty(int *\fP\fIamaster\fP\fB, char *\fP\fIname\fP\fB,\fP \fB const struct termios *\fP\fItermp\fP\fB,\fP \fB const struct winsize *\fP\fIwinp\fP\fB);\fP .PP \fB#include \fP .PP \fBint login_tty(int \fP\fIfd\fP\fB);\fP .fi .SH ОПИСАНИЕ Функция \fBopenpty\fP() ищет доступный псевдотерминал и возвращает файловые дескрипторы для его основного и подчинённого устройств в \fIamaster\fP и \fIaslave\fP. Если \fIname\fP не равно NULL, то имя файла подчинённого устройства возвращается в \fIname\fP. Если \fItermp\fP не равно NULL, то параметры терминала подчинённого устройства будут установлены в значения, указанные в \fItermp\fP. Если \fIwinp\fP не равно NULL, то размер окна подчинённого устройства будет установлен согласно значениям, указанным в \fIwinp\fP. .PP The \fBlogin_tty\fP() function prepares for a login on the terminal referred to by the file descriptor \fIfd\fP (which may be a real terminal device, or the slave of a pseudoterminal as returned by \fBopenpty\fP()) by creating a new session, making \fIfd\fP the controlling terminal for the calling process, setting \fIfd\fP to be the standard input, output, and error streams of the current process, and closing \fIfd\fP. .PP The \fBforkpty\fP() function combines \fBopenpty\fP(), \fBfork\fP(2), and \fBlogin_tty\fP() to create a new process operating in a pseudoterminal. A file descriptor referring to master side of the pseudoterminal is returned in \fIamaster\fP. If \fIname\fP is not NULL, the buffer it points to is used to return the filename of the slave. The \fItermp\fP and \fIwinp\fP arguments, if not NULL, will determine the terminal attributes and window size of the slave side of the pseudoterminal. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Если вызов \fBopenpty\fP(), \fBlogin_tty\fP() или \fBforkpty\fP() завершается с ошибкой, то возвращается \-1 и \fIerrno\fP указывает на тип ошибки. Иначе, \fBopenpty\fP(), \fBlogin_tty\fP() и дочерний процесс \fBforkpty\fP() возвращают 0, и родительский процесс \fBforkpty\fP() возвращает ID дочернего процесса. .SH ОШИБКИ Вызов \fBopenpty\fP() завершается ошибкой если: .TP \fBENOENT\fP Нет доступных терминалов. .PP Завершается ошибкой функция \fBlogin_tty\fP(), если \fBioctl\fP(2) не может назначить \fIfd\fP управляющему терминалу вызываемого процесса. .PP Завершается ошибкой функция \fBforkpty\fP(), если не сработает хотя бы одна из функций \fBopenpty\fP() или \fBfork\fP(2). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBforkpty\fP(), \fBopenpty\fP() T} Безвредность в нитях MT\-Safe locale T{ .na .nh \fBlogin_tty\fP() T} Безвредность в нитях MT\-Unsafe race:ttyname .TE .sp 1 .SH СТАНДАРТЫ BSD. .SH ИСТОРИЯ Модификаторы \fBconst\fP были добавлены в аргументы указателей на структуры \fBopenpty\fP() и \fBforkpty\fP() в glibc 2.8. .PP Before glibc 2.0.92, \fBopenpty\fP() 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. .SH ДЕФЕКТЫ Невозможно определить сколько места должно быть зарезервировано для \fIname\fP. Поэтому, вызов \fBopenpty\fP() или \fBforkpty\fP() со значением \fIname\fP не равным NULL может быть небезопасен. .SH "СМ. ТАКЖЕ" \fBfork\fP(2), \fBttyname\fP(3), \fBpty\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Konstantin Shvaykovskiy , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .