1 /* $Id: pipe.c,v 1.3 2002/09/07 15:12:32 chorns 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
14 int _pipe(int _fildes
[2], unsigned int size
, int mode
)
16 HANDLE hReadPipe
, hWritePipe
;
17 SECURITY_ATTRIBUTES sa
= {sizeof(SECURITY_ATTRIBUTES
), NULL
, TRUE
};
19 if (mode
& O_NOINHERIT
)
20 sa
.bInheritHandle
= FALSE
;
22 if (!CreatePipe(&hReadPipe
,&hWritePipe
,&sa
,size
))
25 if ((_fildes
[0] = __fileno_alloc(hReadPipe
, mode
)) < 0)
27 CloseHandle(hReadPipe
);
28 CloseHandle(hWritePipe
);
33 if ((_fildes
[1] = __fileno_alloc(hWritePipe
, mode
)) < 0)
35 __fileno_close(_fildes
[0]);
36 CloseHandle(hReadPipe
);
37 CloseHandle(hWritePipe
);