Bonjour ,

Le main voit les nombres entre dans la memoire partagée mais le processus fils voit 0 ,0 ,0 ... Pourtt c un programme tout simple :
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
 
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <signal.h>
#include <errno.h>
#include <sys/wait.h>
#include <unistd.h>
#include <signal.h>
#include <sys/select.h>
#include <sys/sem.h>
#include <pthread.h>
#include <sys/shm.h>
 
 
 
typedef struct{
	int horloge;
	int temps_client;
	int nbre_client_attente;
	}mem_partage;
 
 
int mem_id;
 
int findejournee(); 
 
void processusaccueil();
 
int main(int argc, char* argv[])
 
{
 
	mem_partage *memoire;
 
	if ((mem_id = shmget(0,sizeof(mem_partage),IPC_CREAT|IPC_EXCL|0666)) == -1){
		perror("erreur lors de la creation du segment");
		exit(1);
	}
 
	if ((memoire = shmat(mem_id,0,0)) ==(mem_partage*) -1){
		perror("attachement memoire partage main");
		exit(1);
	}
 
	memoire =malloc(sizeof (mem_partage));
 
	memoire->horloge = 66;
	memoire->nbre_client_attente = 90;
	memoire->temps_client = 20;
 
 
	printf("main voit %d a l horloge\n",memoire->horloge);
	printf("main voit %d a nbre_client_attente\n",memoire->nbre_client_attente);
	printf("main voit %d a temps client\n",memoire->temps_client);
 
  	printf("Bienvenue au garage !!!\n");
 
 
	switch(pid_fils = fork())
 
    	{
 
		case -1 :
			{
 
      			printf("erreur lors du fork");
			exit(1);
 
      			break;
			}
 
    		case  0 :
			{
 
      			processusaccueil();
 
      			break;
			}
	    	}
 
	exit(EXIT_SUCCESS);
 
}
 
 
 
 
void processusaccueil()
 
{
	mem_partage* memoire;
 
	if ((memoire = shmat(mem_id,0,0)) ==(mem_partage*) -1){
		perror("attachement memoire partage acceuil");
		exit(1);
	}
 
	printf("accueil voit %d a l horloge\n",memoire->horloge);
	printf("accueil voit %d a nbre_client_attente\n",memoire->nbre_client_attente);
	printf("accueil voit %d a temps client\n",memoire->temps_client);
}