Я пытаюсь использовать вызов библиотеки 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
примерно так:
Я пробовал и другие службы, доступные в этом файле, но ничего не работает, всегда получаю No entry found for this service.
Я использую gcc для компиляции кода в Mac OSМохаве.
Что я делаю не так и как это исправить?