GETNETENT - Linux手册页
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)。
Interface | Attribute | Value |
getnetent() | Thread safety | MT-Unsafe race:netent race:netentbuf env locale |
getnetbyname() | Thread safety | MT-Unsafe race:netbyname env locale |
getnetbyaddr() | Thread safety | MT-Unsafe race:netbyaddr locale |
setnetent(), endnetent() | Thread safety | MT-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/。