Communication inter processus sous linux - C++ - Programmation
MarshPosté le 24-07-2002 à 15:58:02
Hop
Je cherche à faire ça:
un 1er thread envoie des messages dans une file de messages. Il envoie cette structure:
struct trigctx { struct libnet_ip_hdr ip ; char lpfound [1024] ; time_t when ; }
Le 2 thread regarde régulièrement dans la file de messages s'il y a un message, et le décortique pour voir s'il correspond à ce dont il a besoin. Il regarde avec IPC_NOWAIT en flag pour pas attendre qu'un message soit là. Pb: un seg fault.
Code :
Envoi du message:
déclaré:
struct trigctx {
struct libnet_ip_hdr ip ;
char lpfound [1024] ;
time_t when ;
} ;
struct trigctx * context ;
Puis, pour l'envoi du message:
if (idmq = msgget (MSGQUEUE, 0) == -1)
perror ("Cannot link to message queue\n" ) ;
else
{
context -> ip = (struct libnet_ip_hdr) *ip ;
context -> when = time(NULL) ;
strcpy (context -> lpfound, obuf) ; // obuf est une chaine, évidemment
ctx est un struct ctx_t *, et cette structure contient entre autre:
u_long ip_src ; // ip source u_long ip_dst ; // ip dest u_short p_src ; // port source u_short p_dst ; // port dest char user [STRING_NAME_SIZE+1] ; // nom de l'utilisateur
Une idée?
Message édité par coldfire le 24-07-2002 à 15:59:15
Marsh Posté le 24-07-2002 à 15:58:02
Hop
Je cherche à faire ça:
un 1er thread envoie des messages dans une file de messages. Il envoie cette structure:
struct trigctx {
struct libnet_ip_hdr ip ;
char lpfound [1024] ;
time_t when ;
}
Le 2 thread regarde régulièrement dans la file de messages s'il y a un message, et le décortique pour voir s'il correspond à ce dont il a besoin. Il regarde avec IPC_NOWAIT en flag pour pas attendre qu'un message soit là.
Pb: un seg fault.
ctx est un struct ctx_t *, et cette structure contient entre autre:
u_long ip_src ; // ip source
u_long ip_dst ; // ip dest
u_short p_src ; // port source
u_short p_dst ; // port dest
char user [STRING_NAME_SIZE+1] ; // nom de l'utilisateur
Une idée?
Message édité par coldfire le 24-07-2002 à 15:59:15