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

C Discussion :

semaphore : flag IPC_NOWAIT et mauvaise erreur retourné


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Par défaut semaphore : flag IPC_NOWAIT et mauvaise erreur retourné
    Bonjour a tous,

    J'utilise des semaphore, et j'aimerais bien faire un 'down' sur un semaphore, mais ne pas attendre si il est deja à 0, j'utilise donc le flag " IPC_NOWAIT" , et l'erreur retourné devrait etre "EAGAIN" si le semaphore est deja à 0, mais apperement il me retourne toujours une autre erreur ;

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     int retval;
    	/* Set up the sembuf structure. */
    	operations[0].sem_num = 0;
    	operations[0].sem_op = -1;
    	operations[0].sem_flg = IPC_NOWAIT;
    	/* Faire l'operation */
    	retval = semop(semid, operations, 1);
    	switch ( retval )
    	{
    	case ( 0 ):
    		/* Do nothing, semphore bien 'downed' */	
    		break;
    	case ( EAGAIN ):
    		printf("on a bien tente mais pas attendu.\n");
    		break;
    	default:
    		perror("semop");
    		printf("sema down non effectue.\n");
    	}
    en faites, il va donc à chaque fois dans le default !!

    si quelqu'un saurait m'aider pour résoudre ce probleme !!

    Merci d'avance !!

    Et bien finalement, j'ai trouvé une solution a mon probleme, je devais tester la variable errno, j'avais pas fait attention a cela !!!

    Désolé pour le post mis pour rien, si quelqu'un sait le retirer qu'il n'hésite pas !!

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Attention, de la page man :
    http://man.developpez.com/man2/semop.2.php#L4

    renvoie la valeur 0, s'il réussit et -1 s'il échoue auquel cas errno contient le code d'erreur.
    Donc semop retourne -1 s'il y a eu une erreur et errno vaut peut-être EAGAIN...

    Jc

Discussions similaires

  1. [Dojo] Erreur « elements has no properties »
    Par fayred dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 20/09/2007, 18h24
  2. Réponses: 7
    Dernier message: 01/06/2007, 10h57
  3. Réponses: 13
    Dernier message: 31/05/2007, 17h33
  4. [Dates] Erreur retournée par le serveur
    Par gregal dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2007, 19h36
  5. Erreur retourné par le SGBD
    Par ffraggy dans le forum ASP
    Réponses: 8
    Dernier message: 08/02/2006, 09h47

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