2013-05-27 1 views
0

J'essaye d'écrire une petite application client-serveur en utilisant les UNIX DOMAIN SOCKETS.sys/socket membre manquant pour msgdr: msg_control, msg_controllen, msg_flags

J'utilise le msghdr pour le sendmsg/recvmsg mais quand je compile le code suivant, il me donne l'erreur suivante:

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; 

Message d'erreur:

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

Répondre

0

Cela semble bug dans Solaris, ça marche très bien sous Linux. (Vous n'avez pas spécifié le système d'exploitation exactement, mais je vous ai vu utilisé option de compilateur -lsocket, ce qui n'est pas nécessaire sous Linux)

Questions connexes