GETNETENT - Linux手册页

时间:2019-08-20 18:00:10  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

getnetent,getnetbyname,getnetbyaddr,setnetent,endnetent-获取网络条目

语法

#include <netdb.h>

struct netent *getnetent(void);

struct netent *getnetbyname(const char *name);

struct netent *getnetbyaddr(uint32_t net, int type);

void setnetent(int stayopen);

void endnetent(void);

说明

getnetent()函数从网络数据库中读取下一个条目,并返回一个netent结构,其中包含该条目中的细分字段。如有必要,将打开与数据库的连接。

getnetbyname()函数为数据库中与网络名称匹配的条目返回一个netent结构。

getnetbyaddr()函数从数据库返回与类型为type的网络号net匹配的条目的netent结构。 net参数必须按主机字节顺序。

setnetent()函数打开与数据库的连接,并将下一个条目设置为第一个条目。如果stayopen不为零,则在调用getnet *()函数之一之间不会断开与数据库的连接。

endnetent()函数关闭与数据库的连接。

netent结构定义如下:

struct netent {
    char      *n_name;     /* official network name */
    char     **n_aliases;  /* alias list */
    int        n_addrtype; /* net address type */
    uint32_t   n_net;      /* network number */
}

netent结构的成员是:

n_name
网络的正式名称。
n_aliases
以NULL结尾的网络替代名称列表。
n_addrtype
网络号的类型;始终为AF_INET。
n_net
主机字节顺序的网络号。

返回值

getnetent(),getnetbyname()和getnetbyaddr()函数返回指向静态分配的netent结构的指针,如果发生错误或到达文件末尾,则返回空指针。

文件

/etc/networks
网络数据库文件

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
getnetent()Thread safetyMT-Unsafe race:netent
race:netentbuf env locale
getnetbyname()Thread safetyMT-Unsafe race:netbyname
env locale
getnetbyaddr()Thread safetyMT-Unsafe race:netbyaddr
locale
setnetent(),
endnetent()
Thread safetyMT-Unsafe race:netent env
locale

在上表中,race中的netent:netent表示如果在程序的不同线程中并行使用setnetent(),getnetent()或endnetent()函数中的任何一个,则可能发生数据争用。

遵循规范

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

备注

在2.2之前的glibc版本中,getnetbyaddr()的net参数的类型为long。

另外参见

getnetent_r(3),getprotoent(3),getservent(3)
RFC 1101

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/