Section courante

A propos

Section administrative du site

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 :

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSNMPIPES
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     HPIPE PipeHandle;
  8.     switch(DosCreateNPipe( "\\PIPE\\MONTUYAU", &PipeHandle, NP_ACCESS_DUPLEX, 0x01 | NP_READMODE_MESSAGE, 4096, 4096, 1000)) {
  9.         case NO_ERROR: printf("Tout va bien !");break;
  10.         case ERROR_PATH_NOT_FOUND: printf("Erreur : Le chemin est introuvable.");break;
  11.         case ERROR_NOT_ENOUGH_MEMORY: printf("Erreur : La limite de mémoire système est atteinte.");break;
  12.         case ERROR_OUT_OF_STRUCTURES: printf("Erreur : Une erreur en dehors des structures s'est produite.");break;
  13.         case ERROR_INVALID_PARAMETER: printf("Erreur : Un ou plusieurs des paramètres contient une valeur illégale.");break;
  14.         case ERROR_PIPE_BUSY: printf("Erreur : Une erreur de tuyau occupé s'est produite.");break;
  15.     }
  16. }

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