tail head cat sleep
QR code linking to this page

manページ  — GETSERVENT

名称

getservent, getservbyport, getservbyname, setservent, endservent – サービスエントリの取得

内容

ライブラリ

Standard C Library (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
  サービスの別名 (エイリアス) の 0 で終るリスト。
s_port
  サービスが存在するポート番号。 ポート番号はネットワークバイトオーダで返されます。
s_proto
  サービスとのコンタクト中に使用するプロトコル名。

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

setservent() 関数はファイルをオープンしリワインドします。 stayopen フラグが 0 でなければ、 getservbyname() または getservbyport() の各呼び出しの後でも、ネットデータベースはクローズされません。

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

getservbyname() および getservbyport() 関数は、適合するプロトコル名またはポート番号 (これはネットワークバイトオーダで指定されなければなりません) が見つかるか、さもなければ EOF に達するまで、ファイルを最初から順次検索します。 プロトコル名が与えられていても ( NULL でなくても)、検索は適合するプロトコルが見つかるまで続けられます。

関連ファイル

/etc/services
 

診断

EOF またはエラーの場合、 Null ポインタ (0) が返ります。

関連項目

getprotoent(3), services(5)

歴史

getservent(), getservbyport(), getservbyname(), setservent() および endservent() 関数は、 BSD 4.2 で登場しました。

バグ

これらの関数は静的データ記憶域を使用します。 後でこのデータを使用する必要があれば、以後のこれらの関数呼び出しで データが上書きされる前に、コピーして保存する必要があります。 ポート番号がすべて 32 ビットに適合すると期待するのは、たぶん素朴過ぎます。

GETSERVENT (3) July 9, 1995

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。