DosCreateMutexSem |
DOS : Crée une sémaphore Mutex |
---|---|
DOSCALLS.DLL | os2.h |
Syntaxe
APIRET APIENTRY DosCreateMutexSem(PSZ name,PHMTX 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 contient un pointeur recevant le Handle de la nouvelle 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 Mutex de sémaphore.
Exemple
Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :
- #define INCL_DOSERRORS
- #define INCL_DOSSEMAPHORES
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- PHMTX phmtxMySemaphore;
- switch(DosCreateMutexSem("\\SEM32\\MonSem", phmtxMySemaphore, 0, TRUE)) {
- case NO_ERROR: printf("Tout va bien !");break;
- case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
- case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
- case ERROR_INVALID_NAME: printf("Erreur : Le nom pszSemaphoreName est rejeté par un fichier système.");break;
- case ERROR_DUPLICATE_NAME: printf("Erreur : Le nom pszSemaphoreName est en utilisation.");break;
- case ERROR_TOO_MANY_HANDLES: printf("Erreur : La limite du système de 65536 sémaphores est excédée.");break;
- }
- }
Voir également
Langage de programmation - C pour OS/2 - DosCloseMutexSem
Langage de programmation - C pour OS/2 - DosOpenMutexSem
Langage de programmation - C pour OS/2 - DosQueryMutexSem
Langage de programmation - C pour OS/2 - DosReleaseMutexSem
Langage de programmation - C pour OS/2 - DosRequestMutexSem
Technologie - Informatique - Mutex
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010