.\" Copyright (c) 1989, 1991, 1993
.\" The Regents of the University of California. 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.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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.
.\"
.\" @(#)getttyent.3 8.1 (Berkeley) 6/4/93
.\"
.\" $FreeBSD$
.Dd November 17, 1996
.Dt GETTTYENT 3
.Os BSD 4.3
.Sh 名称
.Nm getttyent ,
.Nm getttynam ,
.Nm setttyent ,
.Nm endttyent
.Nd ttys ファイルエントリを取得
.Nm isdialuptty ,
.Nm isnettty
.Nd ファイルエントリから tty タイプを決める
.Sh 書式
.Fd #include <ttyent.h>
.Ft struct ttyent *
.Fn getttyent void
.Ft struct ttyent *
.Fn getttynam "const char *name"
.Ft int
.Fn setttyent void
.Ft int
.Fn endttyent void
.Ft int
.Fn isdialuptty "const char *name"
.Ft int
.Fn isnettty "const char *name"
.Sh 解説
.Fn getttyent
および
.Fn getttynam
関数はそれぞれ、次に示す構造体を持つ
オブジェクトのポインタを返します。構造体には、
tty
記述ファイルにある行の
内訳フィールドが含まれます。
.Bd -literal
struct ttyent {
char *ty_name; /* 端末デバイス名 */
char *ty_getty; /* 実行するコマンド、通常は getty */
char *ty_type; /* termcap の端末タイプ */
#define TTY_ON 0x01 /* ログインの有効化 (ty_getty
プログラムの開始) */
#define TTY_SECURE 0x02 /* uid 0 でのログイン許可 */
#define TTY_DIALUP 0x04 /* ダイアルアップ tty */
#define TTY_NETWORK 0x08 /* ネットワーク tty */
int ty_status; /* ステータスフラグ */
char *ty_window; /* ウィンドウマネージャ起動コマンド */
char *ty_comment; /* コメントフィールド */
char *ty_group; /* tty グループ名 */
};
.Ed
.Pp
フィールドは次のとおりです。
.Bl -tag -width ty_comment
.It Fa ty_name
キャラクタ
-
特殊ファイル名。
.It Fa ty_getty
tty
回線特性の初期化のため、
.Xr init 8
によって呼び出す
コマンド名。
.It Fa ty_type
この
tty
回線に接続されたデフォルト端末のタイプ名。
.It Fa ty_status
この
tty
回線で許されるさまざまな機能を示す、
ビットフィールドのマスク。
可能なフラグは次のとおりです。
.Bl -tag -width TTY_NETWORK
.It Dv TTY_ON
ログインを有効化します
(すなわち、このエントリの
.Fa ty_getty
で参照されるコマンドを、
.Xr init 8
が起動します)。
.It Dv TTY_SECURE
ユーザは uid 0 でこの端末にログインできます。
.It Dv TTY_DIALUP
ユーザは
uid 0
でこの端末にログインできます。
.It Dv TTY_DIALUP
tty
をダイアルイン回線として識別します。この
フラグが設定されると、
.Fn isdialuptty
は非ゼロ値を返します。
.It Dv TTY_NETWORK
ネットワーク接続に使用された
tty
を識別します。このフラグが設定されると、
.Fn isnettty
は非ゼロ値を返します。
.El
.It Fa ty_window
回線に関連するウィンドウシステムを実行するコマンドです。
.It Fa ty_group
ttys
が所属するグループ名です。
ttys
記述ファイルにグループの指定がない場合は、
"none"
と呼ばれる無名グループにその
tty
が置かれます。
.It Fa ty_comment
先頭にシャープ
(``#'')
が付くかまたは余白がある、終端の
コメントフィールドはすべて除去されます。
.El
.Pp
キャラクタストリングを示すフィールドが未指定の場合、それらはすべて
null
ポインタとして返ります。指定されたフラグ値がない場合、フィールド
.Fa ty_status
はゼロになります。
.Pp
このフィールドの意味および用法の詳細な説明については、
.Xr ttys 5
を参照してください。
.Pp
.Fn getttyent
関数は、必要ならばオープンして
ttys
ファイルの次の行を読み込みます。
.Fn setttyent
関数は、ファイルがオープンされていればリワインドし、
オープンされていなければオープンします。
.Fn endttyent
関数は、オープンされているファイルをすべてクローズします。
.Pp
.Fn getttynam
関数は、適合する
.Fa name
が見付かる
(かまたは
.Dv EOF
に出会う)
まで、ファイルを最初から検索します。
.Sh 戻り値
ルーチン
.Fn getttyent
および
.Fn getttynam
は、
.Dv EOF
またはエラーでいずれも
Null
ポインタを返します。
.Fn setttyent
関数および
.Fn endttyent
関数は、いずれも失敗した場合は
0 を、成功した場合は
1 を返します。
.Pp
ルーチン
.Fn isdialuptty
および
.Fn isnettty
は、パラメータによって指名された
tty
に関連する
tty
エントリに、ダイアルアップまたはネットワークフラグが
設定されていなければ非ゼロを返し、その他の場合はゼロを返します。
.Sh 関連ファイル
.Bl -tag -width /etc/ttys -compact
.It Pa /etc/ttys
.El
.Sh 関連項目
.Xr login 1
、
.Xr ttyslot 3
、
.Xr gettytab 5
、
.Xr termcap 5
、
.Xr ttys 5
、
.Xr getty 8 ,
.Xr init 8
.Sh 歴史
.Fn getttyent
、
.Fn getttynam
、
.Fn setttyent
および
.Fn endttyent
関数は、
.Bx 4.3
で最初に取り入れられました。
.Sh バグ
これらの関数は静的データ記憶域を使用します。後で使用するデータの場合は、
以後の呼び出しで上書きする前にデータをコピーして保存する必要があります。