EN JA
GETTTYENT(3)
GETTTYENT(3) FreeBSD Library Functions Manual GETTTYENT(3)

名称

getttyent, getttynam, setttyent, endttyent, isdialuptty, isnetttyttys(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