getprotobyname 子例程

用途

按协议名称从 /etc/protocols 文件获取协议条目。

标准 C 库 (libc.a)

语法

#include <netdb.h>
struct protoent *getprotobyname (Name)
char *Name;

描述

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

getprotobyname 子例程按协议名从 /etc/protocols 文件检索协议信息。 应用程序可以使用 getprotobyname 子例程来访问协议名称,其别名和协议号。

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

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

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

参数

描述
名称 指定协议名称。

返回值

成功完成时, getprotobyname 子例程返回指向 protoent 结构的指针。

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