1 /* $Id: pipe.c,v 1.2 2002/05/07 22:31:25 hbirr Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/crtdll/io/pipe.c
6 * PURPOSE: Creates a pipe
7 * PROGRAMER: DJ Delorie
9 * 28/12/98: Appropriated for Reactos
12 #include <msvcrt/io.h>
13 #include <msvcrt/errno.h>
14 #include <msvcrt/internal/file.h>
17 int _pipe(int _fildes
[2], unsigned int size
, int mode
)
19 HANDLE hReadPipe
, hWritePipe
;
20 SECURITY_ATTRIBUTES sa
= {sizeof(SECURITY_ATTRIBUTES
), NULL
, TRUE
};
22 if (mode
& O_NOINHERIT
)
23 sa
.bInheritHandle
= FALSE
;
25 if (!CreatePipe(&hReadPipe
,&hWritePipe
,&sa
,size
))
28 if ((_fildes
[0] = __fileno_alloc(hReadPipe
, mode
)) < 0)
30 CloseHandle(hReadPipe
);
31 CloseHandle(hWritePipe
);
36 if ((_fildes
[1] = __fileno_alloc(hWritePipe
, mode
)) < 0)
38 __fileno_close(_fildes
[0]);
39 CloseHandle(hReadPipe
);
40 CloseHandle(hWritePipe
);