getprotobynumber 子例程
用途
按数字从 /etc/protocols 文件获取协议条目。
库
标准 C 库 (libc.a)
语法
#include <netdb.h> struct protoent *getprotobynumber ( Protocol)
int 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 | 包含协议信息。 |