GETTTYENT(3)

名称
getttyent, getttynam, setttyent, endttyent - ttys ファイルエントリを取得 isdialuptty, isnettty - ファイルエントリから tty タイプを決める

書式
#include <ttyent.h> struct ttyent * getttyent(void) struct ttyent * getttynam(const char *name) int setttyent(void) int endttyent(void) int isdialuptty(const char *name) int isnettty(const char *name)

解説
getttyent() および getttynam() 関数はそれぞれ、次に示す構造体を持つ オブジェクトのポインタを返します。構造体には、 tty 記述ファイルにある行の 内訳フィールドが含まれます。

    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 グループ名 */
    };

フィールドは次のとおりです。

ty_name
    キャラクタ - 特殊ファイル名。

ty_getty
    tty 回線特性の初期化のため、 init(8) によって呼び出す コマンド名。

ty_type
    この tty 回線に接続されたデフォルト端末のタイプ名。

ty_status
    この tty 回線で許されるさまざまな機能を示す、 ビットフィールドのマスク。 可能なフラグは次のとおりです。

    TTY_ON
        ログインを有効化します (すなわち、このエントリの ty_getty で参照されるコマンドを、 init(8) が起動します)。

    TTY_SECURE
        ユーザは uid 0 でこの端末にログインできます。

    TTY_DIALUP
        ユーザは uid 0 でこの端末にログインできます。

    TTY_DIALUP
        tty をダイアルイン回線として識別します。この フラグが設定されると、 isdialuptty() は非ゼロ値を返します。

    TTY_NETWORK
        ネットワーク接続に使用された tty を識別します。このフラグが設定されると、 isnettty() は非ゼロ値を返します。

ty_window
    回線に関連するウィンドウシステムを実行するコマンドです。

ty_group
    ttys が所属するグループ名です。 ttys 記述ファイルにグループの指定がない場合は、 "none" と呼ばれる無名グループにその tty が置かれます。

ty_comment
    先頭にシャープ (``#'') が付くかまたは余白がある、終端の コメントフィールドはすべて除去されます。

キャラクタストリングを示すフィールドが未指定の場合、それらはすべて null ポインタとして返ります。指定されたフラグ値がない場合、フィールド ty_status はゼロになります。

このフィールドの意味および用法の詳細な説明については、 ttys(5) を参照してください。

getttyent() 関数は、必要ならばオープンして ttys ファイルの次の行を読み込みます。 setttyent() 関数は、ファイルがオープンされていればリワインドし、 オープンされていなければオープンします。 endttyent() 関数は、オープンされているファイルをすべてクローズします。

getttynam() 関数は、適合する name が見付かる (かまたは EOF に出会う) まで、ファイルを最初から検索します。

戻り値
ルーチン getttyent() および getttynam() は、 EOF またはエラーでいずれも Null ポインタを返します。 setttyent() 関数および endttyent() 関数は、いずれも失敗した場合は 0 を、成功した場合は 1 を返します。

ルーチン isdialuptty() および isnettty() は、パラメータによって指名された tty に関連する tty エントリに、ダイアルアップまたはネットワークフラグが 設定されていなければ非ゼロを返し、その他の場合はゼロを返します。

関連ファイル
/etc/ttys

関連項目
login(1) 、 ttyslot(3) 、 gettytab(5) 、 termcap(5) 、 ttys(5) 、 getty(8), init(8)

歴史
getttyent() 、 getttynam() 、 setttyent() および endttyent() 関数は、 4.3BSD で最初に取り入れられました。

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