GETSERVENT(3) FreeBSD ライブラリ関数マニュアル GETSERVENT(3)
名称
getservent, getservbyport, getservbyname, setservent, endservent − サービ スエントリの取得 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <netdb.h> struct servent * |
getservent(); struct servent * |
getservbyname(const char *name, const char *proto); struct servent * |
getservbyport(int port, const char *proto); void |
setservent(int stayopen); void |
endservent(void); |
解説 |
getservent(), getservbyname() および getservbyport() 関数はそれぞれ、次に 示す構造を持つオブジェクトへのポインタを返します。構造体にはネットワーク サービスデータベース /etc/services にある、行の内訳フィールドが含まれま す。 struct servent { char *s_name; /* サービスのオフィシャル名 */ char **s_aliases; /* エイリアスリスト */ int s_port; /* サービスが常駐するポート */ char *s_proto; /* 使用するプロトコル */ }; この構造体のメンバは次のとおりです。 |
s_name
サービスのオフィシャル名。 s_aliases s_port s_proto getservent() 関数は、ファイルの次の行を読み込みます。その際、必要ならば ファイルをオープンします。 setservent() 関数はファイルをオープンしリワインドします。 stayopen フラグ が 0 でなければ、 getservbyname() または getservbyport() の各呼び出しの後 でも、ネットデータベースはクローズされません。 endservent() 関数はファイルをクローズします。 getservbyname() および getservbyport() 関数は、適合するプロトコル名または ポート番号 (これはネットワークバイトオーダで指定されなければなりません) が見つかるか、さもなければ EOF に達するまで、ファイルを最初から順次検索し ます。プロトコル名が与えられていても ( NULL でなくても)、検索は適合するプ ロトコルが見つかるまで続けられます。 関連ファイル |
/etc/services
診断 |
EOF またはエラーの場合、 Null ポインタ (0) が返ります。 |
関連項目
歴史
getservent(), getservbyport(), getservbyname(), setservent() および endservent() 関数は、 4.2BSD で登場しました。 |
バグ
これらの関数は静的データ記憶域を使用します。後でこのデータを使用する必要 があれば、以後のこれらの関数呼び出しでデータが上書きされる前に、コピーし て保存する必要があります。ポート番号がすべて 32 ビットに適合すると期待す るのは、たぶん素朴過ぎます。 FreeBSD 10.0 July 9, 1995 FreeBSD 10.0 |