Section courante

A propos

Section administrative du site

DosOpenMuxWaitSem

DOS : Ouvre un sémaphore MuxWait
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosOpenMuxWaitSem( PSZ pszSemaphoreName, PHMUX phmuxSemaphore );

Paramètres

Nom Description
pszSemaphoreName Ce paramètre permet d'indiquer un pointeur vers une chaîne de caractères ASCIZ contenant le nom d'une sémaphore MuxWait donnant l'accès.
phmuxSemaphore Ce paramètre permet d'indiquer un pointeur vers un sémaphore MuxWait contenu dans un Handle devant être ouvert si pszSemaphoreName est NULL.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
6 ERROR_INVALID_HANDLE Cette valeur permet d'indiquer que la valeur du hmuxSemaphore ne point pas sur un sémaphore valide.
8 ERROR_NOT_ENOUGH_MEMORY Cette valeur permet d'indiquer que la limite de mémoire système est atteinte.
87 ERROR_INVALID_PARAMETER Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale.
105 ERROR_SEM_OWNER_DIED Cette valeur permet d'indiquer que le propriétaire du sémaphore MuxWait spécifié est terminé.
123 ERROR_INVALID_NAME Cette valeur permet d'indiquer que le nom pszSemaphoreName est rejeté par un fichier système.
187 ERROR_SEM_NOT_FOUND Cette valeur permet d'indiquer qu'il n'y a pas de sémaphore avec le nom dans pszSemaphoreName.
291 ERROR_TOO_MANY_OPENS Cette valeur permet d'indiquer que l'utilisation d'un compteur pour la sémaphore en question excède la limite système de 65535.

Description

Cette fonction permet d'accéder à une sémaphore MuxWait partagé.

Exemple

Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSSEMAPHORES
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     PHMUX phmuxMySemaphore = NULL;
  8.     switch(DosOpenMuxWaitSem("\\SEM32\\MonSem", phmuxMySemaphore)) {
  9.         case NO_ERROR: printf("Tout va bien !");break;
  10.         case ERROR_INVALID_HANDLE: printf("Erreur : La valeur du hmuxSemaphore ne pointe pas sur un sémaphore valide.");break;
  11.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  12.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  13.         case ERROR_SEM_OWNER_DIED: printf("Erreur : Le propriétaire du sémaphore MuxWait spécifié est terminé.");break;
  14.         case ERROR_INVALID_NAME: printf("Erreur : Le nom pszSemaphoreName est rejeté par un fichier système.");break;
  15.         case ERROR_SEM_NOT_FOUND: printf("Erreur : Il n'y a pas de sémaphore avec le nom dans pszSemaphoreName.");break;
  16.         case ERROR_TOO_MANY_OPENS: printf("Erreur : L'utilisation d'un compteur pour la sémaphore en question excède la limite système de 65535.");break;
  17.     }
  18. }

Voir également

Langage de programmation - C pour OS/2 - DosAddMuxWaitSem
Langage de programmation - C pour OS/2 - DosCloseMuxWaitSem
Langage de programmation - C pour OS/2 - DosCreateMuxWaitSem
Langage de programmation - C pour OS/2 - DosDeleteMuxWaitSem
Langage de programmation - C pour OS/2 - DosQueryMuxWaitSem
Langage de programmation - C pour OS/2 - DosWaitMuxWaitSem
Système d'exploitation - OS/2 - Introduction

Dernière mise à jour : Lundi, le 19 juillet 2010