getprotobyname 子例程
用途
按协议名称从 /etc/protocols 文件获取协议条目。
库
标准 C 库 (libc.a)
语法
#include <netdb.h> struct protoent *getprotobyname (Name)
char *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 子例程返回空指针。