Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1081 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Probleme sémaphore sous Solaris

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme sémaphore sous Solaris

n°640756
Profil sup​primé
Posté le 23-02-2005 à 11:55:37  answer
 

Salut
Je voudrais utiliser des sémaphores nommés sous Solaris 8.
J'ai le problème suivant :  
 

Code :
  1. sem_t * sem = sem_open("/foo",O_CREAT,0x666,1);
  2. // le sémaphore est créé
  3. sem_close(sem);
  4. // le sémaphore est fermé mais pas effacé
  5. sem_t * sem2 = sem_open("/foo",O_CREAT,0x666,1);
  6. // ce code devrait me réouvrir le sémaphore, mais il me retourne  
  7. // l'erreur 13 : EACCESS


 
Pourquoi cette erreur ? Le sémaphore existe bien, mais je n'ai pas le droit de l'ouvrir. Pourtant les droits 666 correspondent bien à un acces total non ?
 
Merci de m'aider !
A+

mood
Publicité
Posté le 23-02-2005 à 11:55:37  profilanswer
 

n°640790
nraynaud
lol
Posté le 23-02-2005 à 13:04:08  profilanswer
 

Citation :


           The named semaphore exists and the O_RDWR  permissions
           are  denied, or the named semaphore does not exist and
           permission to create the named semaphore is denied.


---------------
trainoo.com, c'est fini
n°640791
Profil sup​primé
Posté le 23-02-2005 à 13:06:57  answer
 

bin justement !!
il me semble que avec 0x666, le bit O_RDWR doit être positionné !
et le sémaphore existe puisqu'il a été créé avant.

n°640799
Sve@r
Posté le 23-02-2005 à 13:28:30  profilanswer
 


 
Et si, au lieu d'utiliser la valeur "0x666" tu utilisais la valeur "O_RDWR" ?
Peut-être que "0x666" (moi j'aurais d'ailleurs écrit la valeur sous forme octale 0666) n'est pas égal à "O_RDWR"

n°640802
Profil sup​primé
Posté le 23-02-2005 à 13:31:52  answer
 

c'est ce que j'etais en train de me dire en relisant le man pour la 12e fois, c pas hexa c'est octal...
je vais essayer ca, je reviens !

n°640804
Sve@r
Posté le 23-02-2005 à 13:33:39  profilanswer
 


Octal ou hexa, si tu utilises la macro "O_RDWR" qui est faite pour ça, tu auras pas de soucis...
 
(tiens, l'est pas revenu donc je présume que ça a marché... ;-)


Message édité par Sve@r le 23-02-2005 à 15:31:59
n°641001
Profil sup​primé
Posté le 23-02-2005 à 22:24:59  answer
 

C'était bien ça !
J'ai utilisé les macros et ca a marché
 
En fait il fallait mettre 0666 au lieu de 0x666
 

n°641163
Sve@r
Posté le 24-02-2005 à 13:18:00  profilanswer
 


 
En fait, en y réfléchissant, c'était évident.
0x666 = 1638
0666 = 438
Donc 0x666 ne correspondait pas à 0666.
 
Le plus drôle, c'est que quand j'ai écrit "moi j'aurais mis 0666" dans mon premier post, je l'ai mis par habitude mais je ne voyais pas de différence entre 0666 et 0x666. Je considérais chaque nombre de façon individuelle et je pensais "de toute façon ca change rien puisque 6 hexa c'est 6 octal".
C'est bien plus tard, après avoir lu ton post suivant, que j'ai réalisé que c'était pas du tout pareil parce que 0x666 c'est un nombre global et pas une concaténation de trois valeurs comme on l'apprend dans le "chmod".
:lol:


Message édité par Sve@r le 24-02-2005 à 13:19:08
n°641807
Profil sup​primé
Posté le 25-02-2005 à 19:14:35  answer
 

Voila c'est ca, 0x666 c'est 4 bits par chiffre alors que 0666 y'en a que 3, ca décale tout !
 
Ca marche maintenant


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Probleme sémaphore sous Solaris

 

Sujets relatifs
Problème avec commande LinuxProbleme proftpd
problème unrarproblème souris ou clavier sous xorg
LILO: probleme de démarrage windowsProbleme à la compilation de mysql-query-browser
Probleme avec PHPMYVISITESPenggy - problème de protocole ...
probleme à l'installation de debianCarte Wifi Probleme de config
Plus de sujets relatifs à : Probleme sémaphore sous Solaris


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR