getprotobyname和getprotobynumber获取协议名字和协议号

大耗子 2020年04月02日 217次浏览

文章链接:https://codemouse.online/archives/2020-04-02161208

获取协议名字和协议号

#include <netdb.h>
struct protoent *getprotoent(void); //获取下一条协议
struct protoent *getprotobyname(const char *name); // 通过名字获取
struct protoent *getprotobynumber(int proto); // 通过号获取
void setprotoent(int stayopen);
// setprotoent()用来打开/etc/protocols, 如果参数stayopen值为1,则接下来的getprotobyname()或getprotobynumber()将不会自动关闭此文件。
void endprotoent(void); //endprotoent()用来关闭由getprotoent()打开的文件。

struct protoent {
    char  *p_name;       /* official protocol name */
    char **p_aliases;    /* alias list */
    int    p_proto;      /* protocol number */
}