GETPROTOENT - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
getprotoent,getprotobyname,getprotobynumber,setprotoent,endprotoent-获取协议条目
语法
#include <netdb.h> struct protoent *getprotoent(void); struct protoent *getprotobyname(const char *name); struct protoent *getprotobynumber(int proto); void setprotoent(int stayopen); void endprotoent(void);
说明
getprotoent()函数从协议数据库中读取下一个条目(请参阅protocol(5)),并返回一个包含该条目中细分字段的协议结构。如有必要,将打开与数据库的连接。
getprotobyname()函数从数据库返回与协议名称相匹配的条目的原型结构。如有必要,将打开与数据库的连接。
getprotobynumber()函数从数据库返回与协议编号匹配的条目的原型结构。如有必要,将打开与数据库的连接。
setprotoent()函数打开与数据库的连接,并将下一个条目设置为第一个条目。如果stayopen为非零,则在调用getproto *()函数之一之间不会断开与数据库的连接。
endprotoent()函数关闭与数据库的连接。
原型结构定义如下:
struct protoent { char *p_name; /* official protocol name */ char **p_aliases; /* alias list */ int p_proto; /* protocol number */ }
原型结构的成员是:
- p_name
- 协议的正式名称。
- p_aliases
- NULL终止的协议替代名称列表。
- p_proto
- 协议号。
返回值
getprotoent(),getprotobyname()和getprotobynumber()函数返回指向静态分配的原型结构的指针,如果发生错误或到达文件末尾,则返回空指针。
文件
- /etc/protocols
- 协议数据库文件
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
getprotoent() | Thread safety | MT-Unsafe race:protoent race:protoentbuf locale |
getprotobyname() | Thread safety | MT-Unsafe race:protobyname locale |
getprotobynumber() | Thread safety | MT-Unsafe race:protobynumber locale |
setprotoent(), endprotoent() | Thread safety | MT-Unsafe race:protoent locale |
在上表中,race中的protoent:protoent表示如果在程序的不同线程中并行使用setprotoent(),getprotoent()或endprotoent()函数中的任何一个,则可能发生数据争用。
遵循规范
POSIX.1-2001,POSIX.1-2008、4.3BSD。
另外参见
getnetent(3),getprotoent_r(3),getservent(3),协议(5)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。