gpt4 book ai didi

c - 为什么我的 getservbyname 函数总是返回 NULL?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:58 25 4
gpt4 key购买 nike

现在我在使用 linux mint 中的 getservbyname() 函数时遇到了一些麻烦,每次我尝试获取端口时它都会返回 NULL 而我却不知道不知道会是什么

   extern struct servent *get_port(char *name, char *prot) {
struct servent *tmp;
tmp = getservbyname(name, prot);
if(tmp == NULL) {
return NULL;
}
return tmp;
}

函数是这样调用的

    struct servent *port;

if((port = (struct servent*)get_port("server", "tcp")) == NULL){
perror("Error... \n");
return -1;
}
printf("Got the port... \n");

我使用 perror 函数来获取有关该问题的更多信息,但每次我运行代码时,我都知道该函数工作正常...

最佳答案

getservbyname()不设置 errno , 所以 perror()不起作用。

如果返回NULL那么最可能的原因是你指定的服务在services文件中不存在,或者services文件打不开。

您示例中的名称 "server"不是通常包含在服务数据库中的服务 - 尝试查找类似 "ftp" 的服务.

关于c - 为什么我的 getservbyname 函数总是返回 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14516062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com