DosCreatePipe

From EDM2
Revision as of 01:40, 21 June 2016 by Martini (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Description

Creates an unnamed pipe.

Syntax

#define INCL_DOSQUEUES
#include <os2.h>

PHFILE    phfRead;   /*  A pointer to an HFILE where the read handle for the pipe is returned. */
PHFILE    phfWrite;  /*  A pointer to an HFILE where the write handle for the pipe is returned. */
ULONG     cb;        /*  The amount of storage to reserve for the pipe. */
APIRET    ulrc;      /*  Return Code. */

ulrc = DosCreatePipe(phfRead, phfWrite, cb);

Parameters

phfRead (PHFILE) - output 
A pointer to an HFILE where the read handle for the pipe is returned.
phfWrite (PHFILE) - output 
A pointer to an HFILE where the write handle for the pipe is returned.
cb (ULONG) - input 
The amount of storage to reserve for the pipe.

Return Code

ulrc (APIRET) - returns

DosCreatePipe returns one of the following values:

  • 0 NO_ERROR
  • 8 ERROR_NOT_ENOUGH_MEMORY

Remarks

Example Code

This example creates an unnamed pipe, and then closes its read and write handles.

#define INCL_DOSQUEUES        /* Queue values */
#define INCL_DOSERRORS        /* DOS Error values */
#include <os2.h>
#include <stdio.h>

int main(VOID) {
HFILE    ReadHandle  = 0;          /* Read handle of pipe */
HFILE    WriteHandle = 0;          /* Write handle of pipe */
ULONG    PipeSize    = 4096;       /* Size of pipe */
APIRET   rc          = NO_ERROR;   /* API return code */

rc = DosCreatePipe(&ReadHandle, &WriteHandle, PipeSize);

if (rc != NO_ERROR) {
   printf("DosCreatePipe error: return code = %u\n", rc);
   return 1;
}

rc = DosClose(ReadHandle);
if (rc != NO_ERROR) {
   printf("DosClose error: return code = %u\n", rc);
   return 1;
}

rc = DosClose(WriteHandle);
if (rc != NO_ERROR) {
   printf("DosClose error: return code = %u\n", rc);
   return 1;
}

return NO_ERROR;
}

Related Functions