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 :

Comment couper un segment de memoire partager a la mano ?


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Comment couper un segment de memoire partager a la mano ?
    vos j'ai ecris un petit prog avec des segment de memoire partages
    et parfois il les detruit mal a la fin du prog , du couq je ne peu plus lancer mon prog sans rebooter la machine( un peu contraignant)

    pourtant j'essai a la main mais il veux pas
    je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    key          shmid        owner      .........
    oxffffffff   98305        shamok    .........

    alors je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $shmctl (98305, IPC_RMID, 0)
    $bash : error near by token '98305, IPC_RMID,0'
    pourtant dans le prog je la coupe comme ca ?????
    meri de m'aider

    et pendant que vous y etes si vouus avez la meme pour les semaphore pas bien detruite se serais cool

    merci

    shamok

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    pour detruire une ressource partager :
    ipcs
    pour voir ce qui est utlisier
    pour detruire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ipcrm -q  pour les queues
    ipcrm -s pour les semaphores
    ipcrm -m pour les shared memories

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    meci je vais essayer ca de suite

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    bon enfaite j'aimerai savoir si je peut ecrit dans un prog
    un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system ("ipcrm _m %d", shmni) ;
    mais ca j'ai essayer, ca marche marche pas
    ca repond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ipcrm : already removed id (%d)
    en gros commetn passer le shmni a la commande en passant par system


    ou suis je obliger de passer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    shmctl (shmni, IPC_RMID, 0) ;
    qui ne marche pas a tous les coup

    merci

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Il me semble que tu devrait essayer de regler la non liberation de ressources a la fin de ton prog, ceci en premier lieu
    ensuite peut etre faire un script encapsulant l'appelle a ton prog , scriipt qui se terminer par un liberation "forcéeé des ressources (ipcs | grep mes ressources ........ipcrm machin),
    mais il est pas normal que la liberation ne fasse pas bien dans ton prog

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    ou suis je obliger de passer par

    Code:
    shmctl (shmni, IPC_RMID, 0) ;


    qui ne marche pas a tous les coup
    Tu n'a pas d'autres processus qui sont attaché à la shm a ce moment la ?

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    ben enfaite
    j'ai un prog avec

    3 processus
    2 semaphore
    et 2 segment partager

    les 2 semaphore et les 3 procesus se detruise tres bien a la fni du prog
    mais pas les segment cela depand quel est le processus qui c'estr couper en premier et sa j'y peut pas grand chose il se coupe au fur et a mesure tout seul ....

    mais l'idee d'un script est pas mal ... ?

    merci :

    ps : question a part connaisser vous un site qui reference un peu tout les librairy standard C comme le fait sun.java.com. Une espece de man en ligne mais avecdes lien html plus faile

  8. #8
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    peut tu utiliser un semaphore pour compter les process en cours, et a chaque fin de process decrementer cette valeur quand celle-ci est a 1 le process en cours libere les ressources partagées ?
    sinon etablir une attente de fin des autres process sur le process creant la ressources afin qu'"il les libere lui-même.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    trop de galere...

    mais puisque elle existe je vais essayer de faire un script lancer a la fin du prog
    style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ipcs | grep id | ipcrm -m .
    non ?

    shamok

  10. #10
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    oui avec le script sa marche aussi , un peut bourrin, mais apres toutt : la bonne methode est avant tout celle qui focntionne

  11. #11
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    J'ai jamais eu de probléme encore avec shmctl pour détruire une ressource

    Lancer un script en fin de prog pour detruire une shm je trouve ca nul enfin c mon avis

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    ben moi aussi mais bon
    surtout que je sais pas encore comment je vais faire pour recup le numero de l'id et que sa

    merci

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    surtout que je sais pas encore comment je vais faire pour recup le numero de l'id et que sa
    A partir de la clé que tu as défini tu peux récupérer un id sur la shm

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    c'est bon
    j'ai reussit a faire se que je voulait

    comme c'est pour un robot, sur un systeme mono
    on peut un peut se qu'on veut

    et en fait la premier fois que je lance le prog ca marche , ca l'es creer
    et si je relance le prog sa bug car il n'a pas detruit donc j'ai fait en sorte de reecup l'erreur et de ne pas les creer mais de la ratacher vu que c'est toujours la meme chose

    s'est un peu de la triche mais ca marche

    shaomk

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/01/2013, 11h46
  2. creation de segment memoire partagé
    Par marianna dans le forum Linux
    Réponses: 1
    Dernier message: 04/12/2007, 10h59
  3. probleme de segment de memoire partagé
    Par charisma dans le forum C
    Réponses: 1
    Dernier message: 09/01/2007, 10h08
  4. segment de memoire partagé en C
    Par thierry_b dans le forum C
    Réponses: 2
    Dernier message: 29/11/2005, 21h30
  5. [segment de memoire partagée]
    Par pitit777 dans le forum C
    Réponses: 4
    Dernier message: 26/11/2005, 14h47

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