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

名称

getprotoent, getprotobynumber, getprotobyname, setprotoent, endprotoentプロトコルエントリを取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < netdb.h>

struct protoent *
getprotoent( void);

struct protoent *
getprotobyname( const char *name);

struct protoent *
getprotobynumber( int proto);

void
setprotoent( int stayopen);

void
endprotoent( void);

解説

getprotoent(), getprotobyname() と getprotobynumber() 関数は、それぞれ、ネットワークプロトコルデータベース /etc/protocols の行の切り離されたフィールドを含んでいる、次の構造があるオブジェクトへのポインタを返します。

struct  protoent { 
        char    *p_name;        /* プロトコルの正式名 */ 
        char    **p_aliases;    /* 別名リスト */ 
        int     p_proto;        /* プロトコル番号 */ 
};

この構造体のメンバは、次の通りです:

p_name
プロトコルの正式名。
p_aliases
プロトコルの別名 (エイリアス) の 0 で終了するリスト。
p_proto
プロトコル番号。

getprotoent() 関数は、必要ならば、ファイルをオープンして、ファイルの次の行を読み込みます。

setprotoent() 関数は、ファイルをオープンして、リワインドします。 stayopen フラグが 0 でないなら、ネットデータベースは、 getprotobyname() または getprotobynumber() への各呼び出しの後に、クローズされません。

endprotoent() 関数は、ファイルをクローズします。

getprotobyname() と getprotobynumber() 関数は、一致するプロトコル名またはプロトコル番号が見つかるか、または EOF に到達するまで、ファイルを最初から順次検索します。

戻り値

EOF であるか、またはエラーであるなら、NULL ポインタが返されます。

関連ファイル

/etc/protocols

関連項目

protocols(5)

歴史

getprotoent(), getprotobynumber(), getprotobyname(), setprotoent() と endprotoent() 関数は、 4.2BSD で登場しました。

バグ

これらの関数は、スレッド特有のデータ空間を使用します。データが将来の使用のために必要とされるなら、あらゆる続く呼び出しで、それを上書きする前に、コピーされるべきです。現在、インターネットプロトコルだけが解釈されます。
June 4, 1993 FreeBSD