The following describes the implementation differences between the OS2Linux library and the real OS/2 Named Pipe APIs.
These APIs are included in your application by including the following definition in your application source file.
#define INCL_DOSNMPIPES
APIRET APIENTRY DosCreateNPipe(PSZ pszName, PHPIPE pHpipe, ULONG openmode, ULONG pipemode, ULONG cbInbuf, ULONG cbOutbuf, ULONG msec);
APIRET APIENTRY DosConnectNPipe(HPIPE hpipe);
APIRET APIENTRY DosDisConnectNPipe(HPIPE hpipe);
APIRET APIENTRY DosTransactNPipe(HPIPE hpipe, PVOID pOutbuf, ULONG cbOut, PVOID pInbuf, ULONG cbIn, PULONG pcbRead);
APIRET APIENTRY DosCallNPipe(PSZ pszName, PVOID pInbuf, ULONG cbIn, PVOID pOutbuf, ULONG cbOut, PULONG pcbActual, ULONG msec);
APIRET APIENTRY DosQueryNPHState(HPIPE hpipe, PULONG pState);
APIRET APIENTRY DosWaitNPipe(PSZ pszName, ULONG msec);
APIRET APIENTRY DosSetNPipeSem(HPIPE hpipe, HSEM hsem, ULONG key);
APIRET APIENTRY DosPeekNPipe(HPIPE hpipe, PVOID pBuf, ULONG cbBuf, PULONG pcbActual, PAVAILDATA pAvail, PULONG pState);
APIRET APIENTRY DosQueryNPipeInfo(HPIPE hpipe, ULONG infolevel, PVOID pBuf, ULONG cbBuf);
APIRET APIENTRY DosQueryNPipeSemState(HSEM hsem, PPIPESEMSTATE pnpss, ULONG cbBuf);
APIRET APIENTRY DosRawReadNPipe(PSZ pszName, ULONG cb, PULONG pLen, PVOID pBuf);
APIRET APIENTRY DosRawWriteNPipe(PSZ pszName, ULONG cb);
APIRET APIENTRY DosSetNPHState(HPIPE hpipe, ULONG state);