GRANTPT(3)

名前
grantpt - スレーブ擬似端末へのアクセスを許可する

書式
#include <stdlib.h>

int grantpt(int fd);

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

grantpt():
    glibc 2.24 以降:
        _XOPEN_SOURCE >= 500 ||
            (_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED)
    glibc 2.23 以前:
        _XOPEN_SOURCE

説明
grantpt() 関数は、ファイルディスクリプター fd で参照されたマスタ擬似端末に対応するスレーブ擬似端末デバイス のモードと所有者を変更する。 スレーブのユーザーID は呼び出したプロセスの実 UID に設定される。 グループID として設定される値は規定されていない (例えば tty になる)。 スレーブのモードは 0620 (crw--w----) に設定される。

SIGCHLD シグナルを捕捉するためにシグナルハンドラーが設定されている場合の grantpt() の動作は規定されていない。

返り値
成功した場合、 grantpt() は 0 を返す。そうでない場合、-1 を返し、 errno に適切な値がセットされる。

エラー

EACCES
    対応するスレーブ擬似端末にアクセスできなかった。

EBADF
    引数 fd が有効なオープンされたファイルディスクリプターでない。

EINVAL
    引数 fd は有効だが、マスタ擬似端末に対応するものではない。

バージョン
grantpt() は、バージョン 2.1 以降の glibc で提供されている。

属性
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値
grantpt() | Thread safety | MT-Safe locale

準拠
POSIX.1-2001, POSIX.1-2008.

注意
これは UNIX 98 疑似端末仕様の一部である。 pts(4) を参照。

Many systems implement this function via a set-user-ID helper binary called "pt_chown". On Linux systems with a devpts filesystem (present since Linux 2.2), the kernel normally sets the correct ownership and permissions for the pseudoterminal slave when the master is opened (posix_openpt(3)), so that nothing must be done by grantpt(). Thus, no such helper binary is required (and indeed it is configured to be absent during the glibc build that is typical on many systems).

関連項目
open(2), posix_openpt(3), ptsname(3), unlockpt(3), pts(4), pty(7)

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