GETPROTOENT - Linux手册页

时间:2019-08-20 18:01:17  来源:igfitidea点击:

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)。

InterfaceAttributeValue
getprotoent()Thread safetyMT-Unsafe race:protoent
race:protoentbuf locale
getprotobyname()Thread safetyMT-Unsafe race:protobyname
locale
getprotobynumber()Thread safetyMT-Unsafe race:protobynumber
locale
setprotoent(),
endprotoent()
Thread safetyMT-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/