xref: /PHP-5.5/ext/standard/proc_open.h (revision 73c1be26)
1 /*
2    +----------------------------------------------------------------------+
3    | PHP Version 5                                                        |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 1997-2015 The PHP Group                                |
6    +----------------------------------------------------------------------+
7    | This source file is subject to version 3.01 of the PHP license,      |
8    | that is bundled with this package in the file LICENSE, and is        |
9    | available through the world-wide-web at the following url:           |
10    | http://www.php.net/license/3_01.txt                                  |
11    | If you did not receive a copy of the PHP license and are unable to   |
12    | obtain it through the world-wide-web, please send a note to          |
13    | license@php.net so we can mail you a copy immediately.               |
14    +----------------------------------------------------------------------+
15    | Author: Wez Furlong <wez@thebrainroom.com>                           |
16    +----------------------------------------------------------------------+
17  */
18 /* $Id$ */
19 
20 #ifdef PHP_WIN32
21 typedef HANDLE php_file_descriptor_t;
22 typedef DWORD php_process_id_t;
23 #else
24 typedef int php_file_descriptor_t;
25 typedef pid_t php_process_id_t;
26 #endif
27 
28 #define PHP_PROC_OPEN_MAX_DESCRIPTORS	16
29 
30 /* Environment block under win32 is a NUL terminated sequence of NUL terminated
31  * name=value strings.
32  * Under unix, it is an argv style array.
33  * */
34 typedef struct _php_process_env {
35 	char *envp;
36 #ifndef PHP_WIN32
37 	char **envarray;
38 #endif
39 } php_process_env_t;
40 
41 struct php_process_handle {
42 	php_process_id_t	child;
43 #ifdef PHP_WIN32
44 	HANDLE childHandle;
45 #endif
46 	int npipes;
47 	long pipes[PHP_PROC_OPEN_MAX_DESCRIPTORS];
48 	char *command;
49 	int is_persistent;
50 	php_process_env_t env;
51 };
52 
53