xref: /PHP-7.4/ext/standard/proc_open.h (revision 0cf7de1c)
1 /*
2    +----------------------------------------------------------------------+
3    | PHP Version 7                                                        |
4    +----------------------------------------------------------------------+
5    | Copyright (c) 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 
19 #ifdef PHP_WIN32
20 typedef HANDLE php_file_descriptor_t;
21 typedef DWORD php_process_id_t;
22 #else
23 typedef int php_file_descriptor_t;
24 typedef pid_t php_process_id_t;
25 #endif
26 
27 /* Environment block under win32 is a NUL terminated sequence of NUL terminated
28  * name=value strings.
29  * Under unix, it is an argv style array.
30  * */
31 typedef struct _php_process_env {
32 	char *envp;
33 #ifndef PHP_WIN32
34 	char **envarray;
35 #endif
36 } php_process_env_t;
37 
38 struct php_process_handle {
39 	php_process_id_t	child;
40 #ifdef PHP_WIN32
41 	HANDLE childHandle;
42 #endif
43 	int npipes;
44 	zend_resource **pipes;
45 	char *command;
46 	int is_persistent;
47 	php_process_env_t env;
48 };
49