スポンサーリンク

GETNETENT(3) FreeBSD ライブラリ関数マニュアル GETNETENT(3)

名称

getnetent, getnetbyaddr, getnetbyname, setnetent, endnetent − ネットワー クエントリの取得

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <netdb.h>

struct netent *

getnetent(void);

struct netent *

getnetbyname(const char *name);

struct netent *

getnetbyaddr(unsigned long net, int type);

void

setnetent(int stayopen);

void

endnetent(void);

解説

getnetent(), getnetbyname(), getnetbyaddr() 関数はそれぞれ、次に示す構造 を持つオブジェクトへのポインタを返します。構造体には、ネットワークデータ ベース /etc/networks にある行の内訳フィールドが含まれます。

      struct  netent {
              char            *n_name;        /* ネットワークの正式名 */
              char            **n_aliases;    /* 別名リスト */
              int             n_addrtype;     /* ネット番号のタイプ */
              unsigned long   n_net;          /* ネット番号 */
      };

この構造体のメンバは次のとおりです。

       n_name

ネットワークの正式名。

n_aliases
ネットワークの別名 (エイリアス) の 0 で終わるリスト。

n_addrtype
返されるネットワーク番号のタイプであり、現在は AF_INET だけで す。

n_net
ネットワーク番号。ネットワーク番号は、マシンバイトオーダで返 されます。

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

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

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

getnetbyname() 関数および getnetbyaddr() は、適合するネット名またはネット アドレスおよびタイプが見つかるか、または EOF に達するまで、ファイルを最初 から順次検索します。 type は AF_INET でなければなりません。ネットワーク番 号はホストオーダで返されます。

関連ファイル

       /etc/networks

診断

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

関連項目

networks(5)

RFC 1101

歴史

getnetent(), getnetbyaddr(), getnetbyname(), setnetent(), endnetent() 関 数は、 4.2BSD で登場しました。

バグ

これらの関数で使用されるデータ空間は静的です。後でこのデータを使う必要が ある場合は、以後のこれら関数の呼び出しでデータが上書きされる前に、コピー して保存する必要があります。データとして受け入れられるのは現在、インター ネットネットワーク番号だけです。ネットワーク番号が 32 ビットを超えない範 囲に収まっていると期待するのは、おそらく素朴過ぎます。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク