shmget shmflg IPC_PRIVATE et IPC_CREAT
Bonjour
J'ai du mal à bien comprendre surement les options shmflg de shmget:
car ce qui m'embête dès que je change le code de mon prog que je re génère il me bloque :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
/* création du segment de mémoire partagée avec la clé CLE */
shmid=shmget((key_t)CLE,1000,0750 |IPC_CREAT | IPC_EXCL);
/* attachement */
mem=shmat(shmid,mem,0);
if(mem == (char*) -1) {
printf("\nShmat failed, erreur alloc memoire \n");
return -1;
} |
Je dois ensuite rechanger à chaque fois la
Code:
1 2 3
|
/* cle du segment de mémoire */
#define CLE |
re générer le code pour que ça passe.
J'ai essayé ceci pensant avoir compris en lisant http://manpagesfr.free.fr/man/man2/shmget.2.html:
Code:
1 2 3 4
|
shmid=shmget((key_t)CLE,1000,0750 |IPC_PRIVATE| IPC_EXCL);
//voir
shmid=shmget((key_t)CLE,1000,0750 |IPC_PRIVATE |IPC_CREAT|IPC_EXCL); |
Mais je rencontre le même problème ou disons que une fois créé avec ipc_private cela passe.
Mais donc je me suis que vous étiez mon dernier recours car je ne devais surement pas avoir bien compris shmflg et que c'est énervant de changer la CLE à chaque modif.
Merci à vous et vive l'été 8-)