getnetent函数用法详解
getnetent函数简介
- 头文件包含
#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函数常见使用错误
- 编译错误
warning: implicit declaration of function ‘getnetent’ [-Wimplicit-function-declaration]
解决办法:包含头文件
#include <netdb.h>
getnetent函数详细描述
getnetent ()函数从网络数据库中读取下一个条目,并返回一个netent结构,其中包含该条目中的分段字段。如有必要,将打开到数据库的连接。
getnetbyname ()函数返回数据库中与网络name 匹配的条目的netent结构
getnetbyaddr ()函数为数据库中与type 类型的网络号net匹配的条目返回netent结构。net参数必须按主机字节顺序排列。
setnetent ()函数打开到数据库的连接,并将下一个条目设置为第一个条目。如果stayopen不为零,那么在调用getnet* ()函数之一之间,到数据库的连接不会关闭。
endnetent ()函数关闭与数据库的连接。
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以空结尾的网络替代名称列表。
- n_addrtype网络号码的类型;始终为AF_INET
- n_net按主机字节顺序排列的网络号。
getnetent函数返回值
getnetent () getnetbyname ()和getnetbyaddr ()函数返回一个指向静态分配的netent结构的指针,或者在发生错误或到达文件末尾时返回一个空指针。
getnetent函数其他说明
在2.2之前的glibc版本中,getnetbyaddr ()的net参数的类型为long
评论区