.\" 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 .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 バグ これらの関数は静的データ記憶域を使用します。後で使用するデータの場合は、 以後の呼び出しで上書きする前にデータをコピーして保存する必要があります。