PTSNAME(3) | FreeBSD Library Functions Manual | PTSNAME(3) |
名称
grantpt, ptsname, unlockpt — 疑似端末アクセス関数ライブラリ
Standard C Library (libc, -lc)書式
#include < stdlib.h> int
grantpt( int fildes);
char *
ptsname( int fildes);
int
unlockpt( int fildes);
解説
grantpt(), ptsname() と unlockpt() 関数によって、疑似端末デバイスにアクセスできます。これらの 3 つの関数は、1 つの疑似端末のペアのマスタハーフを参照するファイル記述子を受け付けます。このファイル記述子は、 posix_openpt(2) で作成されます。 grantpt() 関数は、 fildes で指定されたマスタデバイスへのスレーブデバイス対応部分の所有権とパーミッションを確立するために使用されます。スレーブデバイスの所有権は、呼び出しプロセスの実ユーザ ID に設定され、パーミッションは、ユーザに読み込み書き込み可能でグループに書き込み可能な状態に設定されます。また、スレーブデバイスのグループの所有者は、グループ“ tty
”に設定されます。
ptsname() 関数は、 fildes で指定されたマスタデバイスへのスレーブデバイス対応部分の完全なパス名を返します。 posix_openpt(2) と grantpt() が呼び出された後に、適切なスレーブを続いてオープンするために、この値を使用することができます。
unlockpt() 関数は、 fildes で指定されたマスタデバイスのための疑似端末のペアで保持されるロックをクリアします。
戻り値
The grantpt() and unlockpt() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.ptsname() 関数は、成功すれば、スレーブデバイスの名前へのポインタを返します。そうでなければ、 NULL ポインタを返します。
エラー
grantpt(), ptsname() と unlockpt() 関数は、失敗して、次の値を errno に設定します:- [ EBADF]
- fildes が、有効なオープンされたファイル記述子ではありません。
- [ EINVAL]
- fildes が、マスタ疑似端末デバイスではありません。
さらに、 grantpt() 関数は、次の値を errno に設定します:
- [ EACCES]
- スレーブ疑似端末デバイスにアクセスできませんでした。
規格
ptsname() 関数は、 IEEE Std 1003.1-2008 (“POSIX.1”) に適合しています。grantpt() と unlockpt() のこの実装は、適切な位置に適切なパーミッションがある疑似端末デバイスを作成するために posix_openpt(2) 依存するので、 IEEE Std 1003.1-2008 (“POSIX.1”) に従いません。 fildes が有効な疑似端末のマスタデバイスであるかどうかを有効にするだけです。仕様の今後の改訂は、Austin Group によって述べられているように、この振る舞いを許可すると思われます。
歴史
grantpt(), ptsname() と unlockpt() 関数は、 FreeBSD 5.0 で登場しました。August 20, 2008 | FreeBSD |