Scroll to navigation

POSIX_OPENPT(3) Руководство программиста Linux POSIX_OPENPT(3)

ИМЯ

posix_openpt - открывает псевдо-терминальное устройство

СИНТАКСИС

#include <stdlib.h>
#include <fcntl.h>
int posix_openpt(int flags);


Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

posix_openpt(): _XOPEN_SOURCE >= 600

ОПИСАНИЕ

Функция posix_openpt() открывает неиспользуемое главное псевдо-терминальное устройство, возвращая файловый дескриптор, который можно использовать для работы с устройством.

Аргумент flags представляет собой битовую маску из комбинации (OR) нуля или более следующих флагов:

Открыть устройство для чтения и записи. Обычно, указывается этот флаг.
Не делать данное устройство управляющим терминалом процесса.

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

При успешном выполнении posix_openpt() возвращает неотрицательный файловый дескриптор с наименьшим номером неиспользуемого файлового дескриптора. При ошибке возвращается -1, и в errno записывается номер ошибки.

ОШИБКИ

Смотрите open(2).

ВЕРСИИ

Поддержка posix_openpt() в glibc появилась в версии 2.2.1.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
posix_openpt() Безвредность в нитях MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2001, POSIX.1-2008.

Функция posix_openpt() является частью поддержки псевдо-терминалов UNIX 98 (смотрите pts(4)).

ЗАМЕЧАНИЯ

В некоторых старых реализациях UNIX, поддерживающих System V (также называемом UNIX 98), для псевдо-терминалов нет этой функции, но её легко написать:


int
posix_openpt(int flags)
{

return open("/dev/ptmx", flags); }

При вызове posix_openpt() создаётся путь для соответствующего подчинённого псевдо-терминального устройства. Путь подчинённого устройства можно получить с помощью ptsname(3). Путь подчинённого устройства существует только пока открыто главное устройство.

СМ. ТАКЖЕ

open(2), getpt(3), grantpt(3), ptsname(3), unlockpt(3), pts(4), pty(7)

ЗАМЕЧАНИЯ

Эта страница является частью проекта Linux man-pages версии 4.16. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу https://www.kernel.org/doc/man-pages/.

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Kogan, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.

15 сентября 2017 г.