POSIX_OPENPT(3)

名前
posix_openpt - 疑似端末 (pseudoterminal) デバイスをオープンする

書式
#include <stdlib.h>
#include <fcntl.h>

int posix_openpt(int flags);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

posix_openpt(): _XOPEN_SOURCE >= 600

説明
posix_openpt() 関数は使用されていない疑似端末マスタデバイスをオープンし、 そのデバイスを参照するために使うファイルディスクリプターを返す。 flags 引き数は、以下のフラグのうち 0 個以上の OR をとったビットマスクである。

O_RDWR
    読み書きのためにデバイスをオープンする。 普通はこのフラグを指定する。

O_NOCTTY
    このデバイスをプロセスの制御端末としない。

返り値
成功した場合、 posix_openpt() は負ではないファイルディスクリプターを返す。 これは使用されていないディスクリプターのうち最小の値である。 失敗した場合、-1 が返されて、エラーを示すために errno が設定される。

エラー
open(2) を参照すること。

バージョン
posix_openpt() の glibc でのサポートはバージョン 2.2.1 以降で提供されている。

属性

  マルチスレッディング (pthreads(7) 参照)
posix_openpt() 関数はスレッドセーフである。

準拠
posix_openpt() は UNIX 98 疑似端末サポート (pts(4) を参照) の一部である。 この関数は POSIX.1-2001 で指定されている。

注意
posix_openpt() 関数は POSIX において最近作られたものである。 System V (別名 UNIX 98) 疑似端末をサポートする UNIX 実装の中には、 この関数を持たないものもあるが、以下のようにして簡単に実装できる:
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)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。