Memoire partagee

sparetime Messages postés 34 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 17 août 2004 - 17 août 2004 à 10:03
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 18 août 2004 à 08:30
bonjour
j'ai un pb avec ce code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>

#define SHM_SIZE 4096 /* make it a 4K shared memory segment */

int main()
{
key_t key,key_flag;
int shmid,id_flag;
char *data,*message;
int mode,*flag,c;

/* make the key: */ if ((key_flag ftok("shm.c", 'A')) -1) {
perror("ftok");
exit(1);
} if ((id_flagshmget(key_flag,sizeof(int), 0644 | IPC_CREAT)) -1) {
perror("shmget");
exit(1);
}
flag =(int*) shmat(id_flag, NULL, 0);
if (flag ==(int*) -1) {
perror("shmat");
exit(1);
}
printf("quel est votre choix \n");
scanf("%d",&c);
(*flag)=c;
printf("le drapeau ecrit dans le segment a pour numero: "%d"\n",c);

switch(c)
{
case 1:
printf("demande d'établissement d'une connexion\n");
break;
case 2:
printf("demande d'ouverture de session\n");
break;
case 3:
printf("demande d'envoi de message \n");
{if ((key ftok("shm.c", 'R')) -1) {
perror("ftok");
exit(1);
}

/* connect to (and possibly create) the segment: */ if ((shmid shmget(key,SHM_SIZE, 0644 | IPC_CREAT)) -1) {
perror("shmget");
exit(1);
}

/* attach to the segment to get a pointer to it: */
data =(char*) shmat(shmid, NULL, 0);
if (data == (char*)-1) {
perror("shmat");
exit(1);
}

/* modify the segment */

printf("entrez ici votre message \n");
fflush(stdin);
fgets(message,sizeof(message),stdin);
printf("message ecrit dans le segment: "%s"\n",message);
strncpy(data, message,SHM_SIZE);

/* detach from the segment: */
if (shmdt((char*)data) == -1) {
perror("shmdt1");
exit(1);
}

break;
}
default:
break;
}
if (shmdt(flag) == -1) {
perror("shmdt2");
exit(1);
}

return 0;
}
mon pb est que pour le cas ou c=3
j'obtiens segmentation fault meme avant d'entrer le message et je ne vois d'ou ca arrive
des idees!!!
merci d'avance

3 réponses

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
17 août 2004 à 17:36
G essayé,

<sys/ipc.h> inconnu
<sys/shm.h>idem

et pî ben sans, 9 erreurs (key_t ,...) inconnus

Dc rien a faire

conseil : tu n'aura po de rép tt que tu ne précise ni le se ni le compilo

++

Magic Nono: l'informagicien! 8-)
0
sparetime Messages postés 34 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 17 août 2004
17 août 2004 à 21:35
pardon pour mon imprécision
c sur linux (mandrake plus précisément)
et ca compile sans pb la dessus
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
18 août 2004 à 08:30
k
fo po cpter avec moi la dessus pr le momment alors
++

je passe la main
Magic Nono: l'informagicien! 8-)
0
Rejoignez-nous