Section courante

A propos

Section administrative du site

DosPeekNPipe

DOS : Tuyau
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosPeekNPipe( HPIPE hpipeHandle, PVOID pBuffer, ULONG ulBufferLen, PULONG pBytesRead, PAVAILDATA pBytesAvail, PULONG pPipeState );

Paramètres

Nom Description
hpipeHandle Ce paramètre permet d'indiquer un Handle d'un tuyau nommé à examiné.
pBuffer Ce paramètre permet d'indiquer un pointeur vers un tampon de sortie.
ulBufferLen Ce paramètre permet d'indiquer le nombre d'octets à lire.
pBytesRead Ce paramètre permet d'indiquer un pointeur à une variable contenant le nombre d'octets actuellement lue.
pBytesAvail Ce paramètre permet d'indiquer un pointeur à un tampon de 4 octets. La structure a la signification suivante :
Bits Description
0 à 15 Ces bits permettent d'indiquer le nombre d'octets dans le message courant.
16 à 31 Ces bits permettent d'indiquer le nombre d'octets dans le tuyau.
pPipeState Ce paramètre permet d'indiquer un pointeur à une valeur, représentant l'état d'un tuyau nommé :
Valeur Description
1 Cette valeur permet d'indiquer un (NP_STATE_DISCONNECTED) moyen déconnecté.
2 Cette valeur permet d'indiquer un (NP_STATE_LISTENING) moyen d'écoute.
3 Cette valeur permet d'indiquer un (NP_STATE_CONNECTED) moyen connecté.
4 Cette valeur permet d'indiquer un (NP_STATE_CLOSING) moyen fermé.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
230 ERROR_BAD_PIPE Cette valeur permet d'indiquer qu'une erreur de mauvais tuyau s'est produite.
231 ERROR_PIPE_BUSY Cette valeur permet d'indiquer qu'une erreur de tuyau occupé s'est produite.
233 ERROR_PIPE_NOT_CONNECTED Cette valeur permet d'indiquer qu'une erreur de tuyau non connecté s'est produite.

Description

Cette fonction permet d'examiner le contenu et l'état d'un tuyau, sans changé le tuyau dans n'importe quel chemin.

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 Handle;
  8.     UCHAR Buffer[800];
  9.     ULONG BufferLen;
  10.     ULONG BytesRead;
  11.     struct _AVAILDATA BytesAvail;
  12.     ULONG PipeState;
  13.     switch(DosPeekNPipe( Handle, Buffer, 800, &BytesRead, &BytesAvail, &PipeState)) {
  14.         case NO_ERROR: printf("Tout va bien !");break;
  15.         case ERROR_BAD_PIPE: printf("Erreur : Une erreur de mauvais tuyau s'est produite.");break;
  16.         case ERROR_PIPE_BUSY: printf("Erreur : Une erreur de tuyau occupé s'est produite.");break;
  17.         case ERROR_PIPE_NOT_CONNECTED: printf("Erreur : Une erreur de tuyau non connecté s'est produite.");break;
  18.     }
  19. }

Voir également

Langage de programmation - C pour OS/2 - DosConnectNPipe
Langage de programmation - C pour OS/2 - DosCreateNPipe
Langage de programmation - C pour OS/2 - DosDisConnectNPipe
Système d'exploitation - OS/2 - Introduction

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