begin process at 2010 02 10 13:49:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

memoire partagee


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

memoire partagee

mardi 17 août 2004 à 10:03:48 | memoire partagee

sparetime

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_flag= shmget(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
mardi 17 août 2004 à 17:36:45 | Re : memoire partagee

magic_Nono

Membre Club
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!
mardi 17 août 2004 à 21:35:01 | Re : memoire partagee

sparetime

pardon pour mon imprécision
c sur linux (mandrake plus précisément)
et ca compile sans pb la dessus
mercredi 18 août 2004 à 08:30:56 | Re : memoire partagee

magic_Nono

Membre Club
k
fo po cpter avec moi la dessus pr le momment alors
++

je passe la main
Magic Nono: l'informagicien!


Cette discussion est classée dans : message, key, exit, flag, perror


Répondre à ce message

Sujets en rapport avec ce message

creation d'un proxy [ par krusty24 ] je doit creer un proxy :    de notre coté on se connecte actif    le serveur fonctionne en passifj'ai essayer de faire un proxy en C et je me trouve e conversion virtual key code ->char [ par Sebopop2 ] Salut!Je ne trouve pas de moyen simple de convertir un virtual key code en char et inversementest ce que qqun sait comment faire?merci. Impossible d'utiliser la librairie MIRACL [ par skirby ] Bonjour à tous,J'ai un petit soucis.J'essaye d'utiliser la libraire MIRACL (disponible ici : http://indigo.ie/~mscott/)Le contexte est le suivant : Pj comment choper un message WM_KEYDOWN d'une Ccombobox? [ par papipsycho ] Bonjour comment choper un message WM_KEYDOWN d'une CcomboboxMerci.--==Papi Psycho==-- Socket Builder: Asynchronous socket error 10049 [ par momo2007ma ] Bonjour tout le monde,Mon problème est le suivant: j'ai créee un socket client builder 6 TClientSocket pour envoyer un message vers un serveur unix. L Problème de séparation de chaîne de caractères... [ par KaTSuotlz ] Bonjour !Je suis en train de bosser sur un programme open source d'un jeu qui utilise eAthena comme serveur (serveur privé Ragnarok pour ceux qui conn Séparer une chaîne de caractères en plusieurs parties... [ par KaTSuotlz ] Bonjour !Je suis en train de bosser sur un programme open source d'un jeu qui utilise eAthena comme serveur (serveur privé Ragnarok pour ceux qui conn message d'erreur [ par mqsi ] bjr a tous;j'ai un petit probleme : j'ai un programme qui lire un fichier text ligne par ligne quand le fichier contient plusieur ligne( equivalent  3 [keyboard] attente windows message [ par Andejen ] Bonjour,Je viens de creer une fonction assez simple qui me permet d'effectuer une action des que l'utilisateur tape une touche au clavier. Cependant, Message windows d'arret system aux processus ? [ par mfrai02 ] (C++ MFC visual 6)   Hello !j'aimerais savoir (s'il existe) quel message windows envoie aux processus lors d'un arrêt system. J'ai rien trouvé à ce s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales