getprotobynumber_r 子例程

用途

按数字从 /etc/protocols 文件获取协议条目。

标准 C 库 (libc.a)

语法

#include <netdb.h>
int getprotobynumber_r(proto, protoent, proto_data)
register int proto;
struct protoent *protoent;
struct protoent_data *proto_data;

描述

getprotobynumber_r 子例程使用指定的协议号作为搜索键从 /etc/protocols 文件检索协议信息。

应用程序可以使用 getprotobynumber_r 子例程来访问协议名称,别名和编号。

getprotobynumber_r 子例程从文件的开头开始按顺序搜索 /etc/protocols 文件,直到它找到匹配的协议名,协议号或直到它到达文件的末尾为止。

子例程编写原型结构,该结构包含 /etc/protocols 文件中信息行的字段。

netdb.h 文件定义原型结构。

getprotobynumber 子例程覆盖在后续调用中返回的静态数据。 getprotobynumber_r 子例程不存在。

使用 endprotoent_r 子例程来关闭 /etc/protocols 文件。

参数

描述
proto 指定协议号。
原型 指向 原型 结构。
原型数据 指向 proto_data 结构。

返回值

如果成功,函数返回 0;如果不成功,函数返回-1。

注意:如果发生错误或到达文件末尾,getprotobynumber_r子程序会将protoent参数设置为 NULL,并返回-1表示出错。

文件

描述
/etc/protocols 包含协议信息。