IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

problème avec shmat


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut problème avec shmat
    bonjour tout le monde,
    voilà je doit travailler avec les segments de mémoire partagés donc j'utilise shmget et shmat , le problème c'est que shmat renvoie l'erreur EACCES qui veut dire que le processus n'a pas le droit d'accès au segment , je ne sais pas pourquoi .
    si quelqu'un a déja eu cette erreur ou sait comment faire qu'il me donne un coup de main .
    PS: j'ai utilisé shmat(shmid,NULL,0) après avoir fait shmid=shmget(clef,sizeof(type),IPC_CREAT)
    merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 8
    Par défaut
    je ne suis pas sur a 100%, mais essaie de specifier des droits dans le parametre shmflg

    shmid=shmget(clef,sizeof(type),IPC_CREAT | 0666)

    0666 = lire et ecrire pour tous

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    voici un code que j'utilise en ce moment et qui fonctionne (c'est garanti) :





    // Create the shared memory object
    ShmId = shmget(80, sizeof(tData), IPC_CREAT|IPC_EXCL|0777);
    if(ShmId == -1)
    {
    //printf("Error on shmget errno = %d\n", errno);
    MyOutputDebugString("Error on shmget :");
    MyOutputDebugString(strerror(errno));
    MyOutputDebugString("\n");
    printf("error shmget : %s \n", strerror(errno));
    exit(0);
    }
    printf("shmget OK\n");

    // attach an address to the data structure
    MyStruct = (tData *)shmat(ShmId, NULL, 0);
    printf("MyStruct = %X\n", MyStruct);

    strcpy(MyStruct->Title, "titre");

    Ca revient a ce qui t'a été conseillé precedemment.

    Sylvain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec shmat
    Par laracroft87 dans le forum Linux
    Réponses: 4
    Dernier message: 14/04/2010, 01h27
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo