DosCreateNPipe |
DOS : Crée et tuyau |
---|---|
DOSCALLS.DLL | os2.h |
Syntaxe
APIRET DosCreateNPipe( PSZ pszFileName, PHPIPE phpipePipeHandle, ULONG ulOpenMode, ULONG ulPipeMode, ULONG ulOutBufSize, ULONG ulInBufSize, ULONG ulTimeOut ); |
Paramètres
Nom | Description | ||||
---|---|---|---|---|---|
pszFileName | Ce paramètre permet d'indiquer le nom, en format ASCIZ, d'un tuyau allant être ouvert. Le nom valide inclus le préfixe «\PIPE\» et est conforme aux conventions de nommage du système de fichiers. | ||||
phpipePipeHandle | Ce paramètre contient un pointeur d'une variable recevant le Handle d'un tuyau créé. | ||||
ulOpenMode | Ce paramètre permet d'indiquer les bits de mode d'ouverture : | ||||
Bits | Description | ||||
0 à 2 | Ces bits permettent d'indiquer le mode d'accès : | ||||
Constante | Valeur | Description | |||
NP_ACCESS_INBOUND | 0x0000 | Cette valeur permet d'indiquer que le tuyau est dans des limites entrantes (du client au serveur) | |||
NP_ACCESS_OUTBOUND | 0x0001 | Cette valeur permet d'indiquer que le tuyau est dans des limites sortantes (du serveur au client) | |||
NP_ACCESS_DUPLEX | 0x0002 | Cette valeur permet d'indiquer que le tuyau duplex (du serveur au client et du client au serveur) | |||
3 à 6 | Ces bits doivent toujours être à zéro | ||||
7 | Ce bit permet d'indiquer si le drapeau doit être hérité. | ||||
8 à 13 | Ces bits doivent toujours être à zéro | ||||
14 | Ce bit permet d'indiquer si le tuyau n'autorise pas l'écriture d'un tuyau à distance. | ||||
15 à 31 | Ces bits doivent toujours être à zéro | ||||
ulPipeMode | Ce paramètre permet d'indiquer les bits de mode du tuyau : | ||||
Bits | Description | ||||
0 à 7 | Ces bits permettent d'indiquer le compteur d'instance. | ||||
8 à 9 | Ces bits permettent d'indiquer le mode réel. | ||||
10 à 11 | Ces bits permettent d'indiquer le type de tuyau nommé. | ||||
12 à 14 | Ces bits doivent toujours être à zéro | ||||
15 | Ce bit permet d'indiquer s'il est en mode de bloquage | ||||
16 à 31 | Ces bits doivent toujours être à zéro | ||||
ulOutBufSize | Ce paramètre permet d'indiquer au système le nombre d'octets qu'il doit allouer vers l'extérieur du tampon (serveur vers le client). | ||||
ulTimeOut | Ce paramètre permet d'indiquer la valeur du première instance de la conduite à créer. |
Retour
Valeur | Constante | Description |
---|---|---|
0 | NO_ERROR | Cette valeur permet d'indiquer que l'opération s'est correctement effectué |
3 | ERROR_PATH_NOT_FOUND | Cette valeur permet d'indiquer que le chemin est introuvable. |
8 | ERROR_NOT_ENOUGH_MEMORY | Cette valeur permet d'indiquer que la limite de mémoire système est atteinte. |
84 | ERROR_OUT_OF_STRUCTURES | Cette valeur permet d'indiquer qu'une erreur en dehors des structures s'est produite. |
87 | ERROR_INVALID_PARAMETER | Cette valeur permet d'indiquer qu'un ou plusieurs des paramètres contient une valeur illégale. |
231 | ERROR_PIPE_BUSY | Cette valeur permet d'indiquer qu'une erreur de tuyau occupé s'est produite. |
Description
Cette fonction permet d'effectuer la création d'un tuyau nommé.
Exemple
Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :
- #define INCL_DOSERRORS
- #define INCL_DOSNMPIPES
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- HPIPE PipeHandle;
- switch(DosCreateNPipe( "\\PIPE\\MONTUYAU", &PipeHandle, NP_ACCESS_DUPLEX, 0x01 | NP_READMODE_MESSAGE, 4096, 4096, 1000)) {
- case NO_ERROR: printf("Tout va bien !");break;
- case ERROR_PATH_NOT_FOUND: printf("Erreur : Le chemin est introuvable.");break;
- case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
- case ERROR_OUT_OF_STRUCTURES: printf("Erreur : Une erreur en dehors des structures s'est produite.");break;
- case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
- case ERROR_PIPE_BUSY: printf("Erreur : Une erreur de tuyau occupé s'est produite.");break;
- }
- }
Voir également
Langage de programmation - C pour OS/2 - DosConnectNPipe
Langage de programmation - C pour OS/2 - DosDisConnectNPipe
Langage de programmation - C pour OS/2 - DosPeekNPipe
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010