doc/ja_JP.eucJP/man/man3/pty.3
SUZUKI Koichi 218c6b4b9b Unify the wording of some words of foreign (English) origin
which has some variation of writing in Japanese, as well as some typos.

Submitted by:  kano@na.rim.or.jp
Approved by:   kuriyama (mentor/implicitly)
2004-07-17 22:45:21 +00:00

144 lines
3.8 KiB
Groff

.\"
.\" Copyright (c) 1996 Joerg Wunsch
.\"
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" %FreeBSD: src/lib/libutil/pty.3,v 1.8.2.3 2001/12/17 10:08:32 ru Exp %
.\" $FreeBSD$
.\" "
.Dd December 29, 1996
.Os
.Dt PTY 3
.Sh 名称
.Nm openpty ,
.Nm forkpty
.Nd 疑似端末を入手する補助関数
.Sh ライブラリ
.Lb libutil
.Sh 書式
.In sys/types.h
.In sys/ioctl.h
.In termios.h
.In libutil.h
.Ft int
.Fn openpty "int *amaster" "int *aslave" "char *name" "struct termios *termp" "struct winsize *winp"
.Ft int
.Fn forkpty "int *amaster" "char *name" "struct termios *termp" "struct winsize *winp"
.Sh 解説
.Fn openpty
関数は、次に使用できる疑似端末をシステムから
入手しようとします (
.Xr pty 4
参照)。疑似端末を問題なく見つけると、スレーブデバイスの所有権を
現行プロセスの実際の UID に、 グループメンバシップをグループ
.Dq tty
に (このようなグループがシステムに存在する場合)、所有者の
読み書き権とグループの書込み権を変更し、
.Xr revoke 2
を呼び出してラインの現在の使用を無効にしようとします。
.Pp
引数
.Fa name
.Dv NULL
ではない場合、
.Fn openpty
はスレーブ pty のパス名をこの領域にコピーします。
この配列で必要なスペースは、呼び出し側で割り振ります。
.Pp
引数
.Fa termp
.Fa winp
.Dv NULL
ではない場合、
.Fn openpty
は、これらの引数が指す構造体の termios 設定とウィンドウサイズ設定を
初期化します。
.Pp
戻る場合は、 pty のマスタサイドとスレーブサイドのオープンファイル記述子が、
.Fa amaster
.Fa aslave
が指す場所に戻されます。
.Pp
.Fn forkpty
は最初に
.Fn openpty
を呼び出し、次に使用できる疑似端末をシステムから入手します。
問題がない場合は、新しいプロセスが分岐されます。子プロセスでは、 pty
のマスタサイドの記述子を閉じ、スレーブ pty で
.Xr login_tty 3
を呼び出します。親プロセスでは、 pty のスレーブサイドの記述子を閉じます。
引数
.Fa amaster ,
.Fa name ,
.Fa termp
そして
.Fa winp
は、
.Fn openpty
の引数と同じ働きをします。
.Sh 戻り値
.Fn openpty
は、問題がなければ 0 を戻し、エラーが発生すると -1 を戻します。
.Pp
.Fn forkpty
は、エラーが発生すると -1 を戻し、スレーブプロセスに 0、親プロセスに
スレーブプロセスのプロセス ID を戻します。
.Sh エラー
エラーが発生した場合、
.Fn openpty
はグローバル変数
.Dv errno
.Er ENOENT
に設定します。
.Pp
.Fn forkpty
は、
.Xr fork 2
で説明してあるように、
.Dv errno
を設定することがあります。
.Sh 関連項目
.Xr chmod 2 ,
.Xr chown 2 ,
.Xr fork 2 ,
.Xr getuid 2 ,
.Xr open 2 ,
.Xr revoke 2 ,
.Xr login_tty 3 ,
.Xr pty 4 ,
.Xr termios 4 ,
.Xr group 5
.Sh バグ
呼び出しプロセスにスーパユーザの有効な UID がなければ、すべての
アクションは実行できません。 pty を割り振れる限り (
.Fn forkpty
の場合は新しいプロセスを作成できる限り)、説明したステップを
.Fn openpty
.Fn forkpty
が続けられなくても通知はされません。