在这个程序中,我使用函数gethostname来获取服务器的主机名。但是在下面运行时:
#include <sys/types.h>
#include <sys/socket.h>
⋮
int rc;
int server_sock;
u_char hostname[50];
⋮
rc = gethostname(&hostname,sizeof(hostname));
printf("hostname = %s\n",hostname);
我收到错误:
Cannot convert u_char(*)[50] to char* for argument '1' to 'int gethostname(char*, size_t)'
答案 0 :(得分:3)
您有一个错误类型的数组(u_char
而不是char
)并且您正在传递指向数组的指针而不是直接传递它 - &hostname
的类型为{ {1}} - 你只想要一个指针,它只是u_char(*)[50]
:
正确的方法是:
hostname