スポンサーリンク

GETPROTOENT(3) FreeBSD ライブラリ関数マニュアル GETPROTOENT(3)

名称

getprotoent, getprotobynumber, getprotobyname, setprotoent, endprotoent − プロトコルエントリの取得

ライブラリ

標準 C ライブラリ (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 ポインタ (0) が返ります。

関連ファイル

       /etc/protocols

関連項目

protocols(5)

歴史

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

バグ

これらの関数は静的データ空間を使用します。後でこのデータを使用する必要が あれば、以後のこれらの関数の呼び出しでデータが上書きされる前に、コピーし て保存する必要があります。なお、プロトコルデータとして受け入れるのは現 在、インターネットプロトコルだけです。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク