GETSERVENT

Section: Linux Programmer's Manual (3)
Updated: 2020-12-21
Index JM Home Page
 

名前

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
サービスのデータベースファイル
 

属性

この節で使用されている用語の説明は attributes(7) を参照のこと。
Interface Attribute Value
getservent() Thread safety MT-Unsafe race:servent
race:serventbuf locale
getservbyname() Thread safety MT-Unsafe race:servbyname
locale
getservbyport() Thread safety MT-Unsafe race:servbyport
locale
setservent(),
endservent()
Thread safety MT-Unsafe race:servent
locale

In the above table, servent in race:servent signifies that if any of the functions setservent(), getservent(), or endservent() are used in parallel in different threads of a program, then data races could occur.  

準拠

POSIX.1-2001, POSIX.1-2008, 4.3BSD.  

関連項目

getnetent(3), getprotoent(3), getservent_r(3), services(5)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

データベース   サービス   エントリー   servent   構造体   接続   プロトコル   race   オープン   マッチ   Thread   safety   locale   ポート   番号   port   getservent   getservbyname   getservbyport   setservent   endservent   netdb   任意   ネットワーク   バイト

Linux マニュアル 一覧

関連するコマンド・関数

endservent.3   getservbyname.3   getservent.3   setservent.3   endprotoent.3   getprotobyname.3
 

Index

名前
書式
説明
返り値
ファイル
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:29 GMT, October 11, 2026