OPENPTY(3) | Linux Programmer's Manual | OPENPTY(3) |
名前
openpty, login_tty, forkpty -端末ユーティリティ関数書式
#include <pty.h>
int openpty(int * amaster , int * aslave , char * name ,
const struct termios * termp ,
const struct winsize * winp );
pid_t forkpty(int * amaster , char * name ,
const struct termios * termp ,
const struct winsize * winp );
#include <utmp.h>
int login_tty(int fd );
-lutil でリンクする。
説明
openpty() 関数は、使用可能な疑似端末 (pseudoterminal) を見つけて、マスタとスレーブのファイル・ディスクリプタを amaster と aslave に入れて返す。 name が NULL でない場合、スレーブのファイル名が name に返される。 termp が NULL でない場合、スレーブの端末パラメータは termp の値に設定される。 winp が NULL でない場合、スレーブのウインドウサイズは winp に設定される。返り値
openpty(), login_tty(), forkpty() の呼び出しが成功しなかった場合、-1 が返されて、 errno はエラーを示す値に設定される。成功した場合、 openpty(), login_tty() および forkpty() の子プロセスは 0 を返し、 forkpty() の親プロセスは子プロセスのプロセス ID を返す。エラー
以下の場合に openpty() は失敗する:- ENOENT
- 使用可能な端末がない。
ioctl(2) が fd を呼び出し元のプロセスの制御端末に設定するのに失敗した場合、 login_tty() は失敗する。
openpty() または fork(2) のどちらかが失敗した場合、 forkpty() は失敗する。
準拠
これらは BSD の関数であり、libc5 と glibc2 に存在する。 POSIX での標準化はされていない。注意
glibc 2.8 で、 openpty() と forkpty() の構造体へのポインタの引き数に const 修飾子が追加された。バグ
誰も name に対してどのくらい大きさを予約しておけばいいか分からない。したがって、NULL でない name を引き数として openpty() や forkpty() を呼び出すのは安全であるとは言えない。関連項目
fork(2), ttyname(3), pty(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-06-13 | GNU |