getprotobynumber 子例程

用途

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

标准 C 库 (libc.a)

语法

#include <netdb.h>
struct protoent *getprotobynumber ( Protocol)
int Protocol;

描述

getprotobynumber 子例程是线程安全的。 但是,该返回值指向由后续调用覆盖的静态数据。 必须复制此数据以进行保存,以供后续调用使用。

getprotobynumber 子例程使用指定的协议号作为搜索键从 /etc/protocols 文件检索协议信息。 应用程序可以使用 getprotobynumber 子例程来访问协议名称,它的别名和协议号。

getprotobynumber 子例程从文件的开头开始按顺序搜索 /etc/protocols 文件,直到它找到匹配的协议名或协议号,或者直到它到达文件的结尾。 子例程返回一个指向 protoent 结构的指针,该结构包含 /etc/protocols 文件中信息行的字段。 netdb.h 文件定义 protoent 结构。

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

所有包含 getprotobynumber 子例程的应用程序都必须在将 _BSD 宏设置为特定值的情况下进行编译。 可接受的值为 43 和 44。 此外,所有套接字应用程序都必须包含 BSD libbsd.a 库。

参数

描述
协议 指定协议号。

返回值

成功完成后, getprotobynumber 子例程将返回指向 原型 结构的指针。

如果发生错误或到达文件的末尾,那么 getprotobynumber 子例程将返回空指针。

文件

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