GETTTYENT(3) | FreeBSD Library Functions Manual | GETTTYENT(3) |
名称
getttyent, getttynam, setttyent, endttyent, isdialuptty, isnettty — ttys(5) フィイルルーチンライブラリ
Standard C Library (libc, -lc)書式
#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
- tty をダイヤルイン回線として識別します。このフラグが設定されると、 isdialuptty() は 0 でない値を返します。
- TTY_NETWORK
- ネットワーク接続に使用された tty を識別します。このフラグが設定されると、 isnettty() は 0 でない値を返します。
- ty_window
- 回線に関連するウィンドウシステムを実行するコマンド。
- ty_group
- tty が所属するグループ名。 ttys 記述ファイルにグループの指定がない場合は、その tty は "none"と呼ばれる無名グループに置かれます。
- ty_comment
- 終端のコメントフィールドであり、先頭のハッシュマーク (``#'') と空白類はすべて取り除かれます。
文字列を指すいずれのフィールドも無指定の場合、それらは NULL ポインタとして返ります。フラグ値が指定されていない場合、フィールド ty_status は 0 になります。
フィールドの意味および使用法のより完全な議論については、 ttys(5) を参照してください。
getttyent() 関数は、必要ならばファイルオープンして ttys ファイルの次の行を読み込みます。 setttyent() 関数は、オープンされていればファイルをリワインドし、オープンされていなければファイルをオープンします。 endttyent() 関数は、オープンされているファイルをすべてクローズします。
getttynam() 関数は、一致する name が見つかる (かまたは EOF に遭遇する) まで、ファイルの最初から検索します。
戻り値
ルーチン getttyent() および getttynam() は、 EOF またはエラーで NULL ポインタを返します。 setttyent() 関数および endttyent() 関数は、失敗した場合は 0 を、成功した場合は 1 を返します。ルーチン isdialuptty() および isnettty() は、引数によって指名された tty に関連する tty エントリに、ダイヤルアップまたはネットワークフラグが設定されていなければ 0 以外を返し、その他の場合は 0 を返します。
関連ファイル
- /etc/ttys
歴史
関数 getttyent(), getttynam(), setttyent(), endttyent() は、 4.3BSD で登場しました。バグ
これらの関数は静的データ記憶域を使用します。データが後で必要になる場合は、以後の呼び出しで上書きする前にコピーすべきです。November 17, 1996 | FreeBSD |