Difference between revisions of "DosCreatePipe"

From EDM2
Jump to: navigation, search
m
m (Syntax)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
==Description==
 
 
Creates an unnamed pipe.
 
Creates an unnamed pipe.
  
 
==Syntax==
 
==Syntax==
<PRE>
+
  DosCreatePipe(phfRead, phfWrite, cb)
#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);
+
</PRE>
+
  
 
==Parameters==
 
==Parameters==
;phfRead (PHFILE) - output : A pointer to an HFILE where the read handle for the pipe is returned.
+
;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.
+
;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.
+
;cb (ULONG) - input: The amount of storage to reserve for the pipe.
  
 
==Return Code==
 
==Return Code==
ulrc (APIRET) - returns
+
;ulrc (APIRET) - returns:DosCreatePipe returns one of the following values:
 
+
*0 NO_ERROR
DosCreatePipe returns one of the following values:
+
*8 ERROR_NOT_ENOUGH_MEMORY
* 0 NO_ERROR
+
* 8 ERROR_NOT_ENOUGH_MEMORY
+
  
 
==Example Code==
 
==Example Code==

Latest revision as of 18:49, 29 November 2019

Creates an unnamed pipe.

Syntax

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

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