Section courante

A propos

Section administrative du site

DosCreateEventSem

DOS : Crée un événement de sémaphore
DOSCALLS.DLL os2.h

Syntaxe

APIRET APIENTRY DosCreateEventSem(PSZ name,PHEV handle,ULONG flags,BOOL32 init);

Paramètres

Nom Description
name Ce paramètre contient un pointeur vers une chaîne de caractères ASCIZ permet d'indiquer le nom de la sémaphore. N'importe quel sémaphore nommé peut être considéré comme partagé. Un sémaphore sans nom peut être crée en la fixant sur NULL. Le nom d'une sémaphore doit avoir un préfixe «\SEM32\», et elle ne peut excéder une longueurs de 255 selon les conventions du système de fichier.
handle Ce paramètre contient un pointeur recevant le Handle de la nouvelle sémaphore.
flags Ce paramètre permet d'indiquer les drapeaux de création de sémaphore.
init Ce paramètre permet d'indiquer l'état initiale de la sémaphore :
Constante Valeur Description
FALSE 0x00000000 Cette valeur permet d'indiquer que l'état initiale de la sémaphore sans propriétaire et du processus en attente après la sémaphore ne bloqueront pas.
TRUE 0x00000001 Cette valeur permet d'indiquer que l'état initiale de la sémaphore sans propriétaire et du processus en attente après la sémaphore vont bloquer.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
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.
123 ERROR_INVALID_NAME Cette valeur permet d'indiquer que le nom pszSemaphoreName est rejeté par un fichier système.
285 ERROR_DUPLICATE_NAME Cette valeur permet d'indiquer que le nom pszSemaphoreName est en utilisation.
290 ERROR_TOO_MANY_HANDLES Cette valeur permet d'indiquer que la limite du système de 65536 sémaphores est excédée.

Description

Cette fonction permet de créer un événement de sémaphore.

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.     PHEV phevMySemaphore;
  8.     switch(DosCreateEventSem("\\SEM32\\MonSem", phevMySemaphore, 0, TRUE)) {
  9.         case NO_ERROR: printf("Tout va bien !");break;
  10.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  11.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  12.         case ERROR_INVALID_NAME: printf("Erreur : Le nom pszSemaphoreName est rejeté par un fichier système.");break;
  13.         case ERROR_DUPLICATE_NAME: printf("Erreur : Le nom pszSemaphoreName est en utilisation.");break;
  14.         case ERROR_TOO_MANY_HANDLES: printf("Erreur : La limite du système de 65536 sémaphores est excédée.");break;
  15.     }
  16. }

Voir également

Langage de programmation - C pour OS/2 - DosCloseEventSem
Langage de programmation - C pour OS/2 - DosOpenEventSem
Langage de programmation - C pour OS/2 - DosPostEventSem
Langage de programmation - C pour OS/2 - DosQueryEventSem
Langage de programmation - C pour OS/2 - DosResetEventSem
Langage de programmation - C pour OS/2 - DosWaitEventSem
Système d'exploitation - OS/2 - Introduction

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