GETSERVENT(3) Linux Programmer's Manual GETSERVENT(3)
名
getservent, getservbyname, getservbyport, setservent, endservent -
サービスのエントリーを取得する
書
#include <netdb.h>
struct servent *getservent(void);
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() 関数はサービスのデータベース (services(5) 参照)
から次のエントリーを読み込み、 そのエントリーを servent
構造体の要素別のフィールドに格納し、 その構造体を返す。
必要であれば、データベースへの接続がオープンされる。
getservbyname() 関数は、 プロトコル proto を用いるサービスの名前 name
にマッチするエントリーをデータベースから探し、 そのエントリーを収めた servent
構造体を返す。 proto が NULL の場合は、任意のプロトコルにマッチする。
必要であれば、データベースへの接続がオープンされる。
getservbyport() 関数は、 プロトコル proto を用いるサービスのポート番号 port
にマッチするエントリーをデータベースから探し、 そのエントリーの内容を収めた servent
構造体を返す (ポート番号 port はネットワークバイトオーダで指定する)。 proto が NULL
の場合は任意のプロトコルにマッチする。
必要であれば、データベースへの接続がオープンされる。
setservent() 関数はデータベースへの接続をオープンし、
次の読み込みエントリーを先頭のエントリーに設定する。 stayopen が 0 でない場合、 一つ一つの
getserv*() 関数の呼び出し間でデータベースへの接続をクローズしない。
endservent() 関数はデータベースへの接続をクローズする。
servent 構造体は <netdb.h> で以下のように定義されている。
struct servent {
char *s_name; /* official service name */
char **s_aliases; /* alias list */
int s_port; /* port number */
char *s_proto; /* protocol to use */
}
servent 構造体のメンバーは以下の通り。
s_name サービスの正式名 (official name)。
s_aliases
サービスの別名のリスト。 リストはヌルで終端される。
s_port サービスのポート番号。ネットワークバイトオーダで指定される。
s_proto
このサービスと共に用いるプロトコルの名前。
返
getservent(), getservbyname(), getservbyport() 関数は、 静的に割り当てられた servent
構造体へのポインターを返す。 エラーが起こったり、ファイルの末尾に達した場合は NULL
を返す。
フ
/etc/services
サービスのデータベースファイル
こ
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/
に書かれている。
GNU 2008-08-19 GETSERVENT(3)