Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getservent(3N) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getprotoent(3N)

services(5)

nis.conf(5)

ypserv(8)

GETSERVENT(3N)  —  NEWS-OS Programmer’s Manual

名称

getservent, getservbyport, getservbyname, setservent, endservent − サービスエントリを獲得する

形式

#include <netdb.h>

struct servent ∗getservent()

struct servent ∗getservbyname(name, proto)
char ∗name, ∗proto;

struct servent ∗getservbyport(port, proto)
int port; char ∗proto;

setservent(stayopen)
int stayopen

endservent()

解説

getservent、 getservbyname および getservbyport は、それぞれネットワークサービスデータベース、 /etc/services 中の行の broken-out フィールドを含んだ次の構造体をもつ オブジェクトを指すポインタを返します。

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 フラグがゼロでない値の場合、ネットデータベースは、 getservbyname または getservbyport への各呼び出しの後で、クローズされません。

endservent は、ファイルをクローズします。

getservbyname と getservbyport は、一致するプロトコル名またはポート番号が見つかるまで、または、 EOF に出くわすまで、ファイルの始めから順次検索を行います。 プロトコル名も供給される場合は(NULL でない)、検索は、 そのプロトコルにも一致しなければなりません。

関連ファイル

/etc/services

関連事項

getprotoent(3N), services(5), nis.conf(5), ypserv(8)

診断

EOF またはエラー時には、 ナル ポインタ (0) が返されます。

バグ

すべての情報が静的領域に含まれるので、 それをセーブした場合は、コピーしなければなりません。 ポート番号が 32 ビット内に収まると期待するのは、きびしいでしょう。

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026