Bonjour ,

LE probleme est simple a comprendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
lib.h :
 
typedef struct{
<div style="margin-left:40px">long mtype;
int pid;
}msgbuf;</div>
main.c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
int var1 = 0;
int var2 = 0;
errno = 0;
msbuf message;
 
if ((msgrcv(msgid_file_message,&message,sizeof(int),2,IPC_NOWAIT)==-1))
{
<div style="margin-left:40px">if (errno = ENOMSG){
<div style="margin-left:40px">msgrcv(msgid_file_message,&message,sizeof(int),0,0)
var1 -= 1;</div>}</div>}
 
else
<div style="margin-left:40px">
var2 -=1;</div>
printf("mtype est %d", message.mtype")
perror("erreur");
Perror me dit tjrs qu'il n'y a pas de message du type desire alros que printf me dit qu il y a des messages mtype = 2

var1 est la seule variable decremente

J ai aussi mis un perror apres le 2eme msgrcv mais pas de probleme ace niveau la