2013-05-27 4 views
0

Я пытаюсь написать небольшое приложение Client-Server, используя UNIX DOMAIN SOCKETS.sys/socket отсутствует член для msgdr: msg_control, msg_controllen, msg_flags

Я использую msghdr для sendmsg/recvmsg, но когда я скомпилировать следующий код, он дает мне следующее сообщение об ошибке: сообщение

include <sys/socket.h> 
... 
struct msghdr mh; 
struct cmsghdr *cmp; 
union{ 
    struct cmsghdr cm; 
    char ctrl[sizeof(struct cmsghdr) + sizeof(int)]; 
} ctrlu; 
... 
mh.msg_name = NULL; 
mh.msg_namelen = 0; 
mh.msg_iov = iov; 
mh.msg_iovlen = 1; 
mh.msg_control = ctrlu.ctrl; 
mh.msg_controllen = sizeof(ctrlu); 
mh.msg_flags = 0; 

Ошибка:

gcc s.c -o s -lsocket

s.c: In function `main':

s.c:59: error: structure has no member named `msg_control'

s.c:60: error: structure has no member named `msg_controllen'

s.c:61: error: structure has no member named `msg_flags'

* Error code 1

ответ

0

Это кажется ошибка в Solaris, он отлично работает в Linux. (Вы точно не указали ОС, но я видел, что вы использовали опцию компилятора -lsocket, которая не нужна в Linux)