- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 getservbyname()
C 库调用,我的使用方式如下:
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct servent *sptr = getservbyname("tcp", "exonet");
if (!sptr)
{
printf("No entry found for this service.\n");
exit(1);
}
printf("service name is %s.\n"
"service port is %d.\n"
"protocol to use is %s.\n",
sptr->s_name, sptr->s_port, sptr->s_proto);
return 0;
}
该函数无法找到服务条目,尽管它在 /etc/services
文件中可用,并且该函数应该从这里获取其条目。
服务 exonet
在 /etc/services
中可用,如下所示:
我还尝试了此文件中提供的其他服务,但没有任何效果,我总是收到找不到此服务的条目。
我使用 gcc 在 Mac OS Mojave 上编译代码。
我做错了什么以及如何解决它?
最佳答案
您不小心互换了参数的顺序。手册页说:
struct servent *getservbyname(const char *name, const char *proto);
但是您在代码中交换了服务名称和原型(prototype):
struct servent *sptr = getservbyname("tcp", "exonet");
关于c - 如何让 getservbyname() C 库调用在 Mac 上正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066847/
我真的不知道在 getservbyname() 的第一个参数中写什么. 我读到,如果我给出名称和协议(protocol)(例如 TCP),我会得到一个带有信息的结构体返回给服务器,但我应该在那里写什么
我不知道 getservbyname 的正确答案是什么。 句子sp = getservbyname("example", "tcp") a.客户端使用它来获取服务的端口。 b.只有当我们有权限修改/e
在我的 C:\Windows\System32\drivers\etc\service 文件中,我看到了 回声 7/TCP回显 7/udp 所以我写了一个程序来测试getservbyname #inc
现在我在使用 linux mint 中的 getservbyname() 函数时遇到了一些麻烦,每次我尝试获取端口时它都会返回 NULL 而我却不知道不知道会是什么 extern struct
我正在尝试使用 getservbyname() C 库调用,我的使用方式如下: #include #include #include int main() { struct servent
我是一名优秀的程序员,十分优秀!