1 
2 #include "buffer.h"
3 
4 #ifdef WIN32
5 #include <windows.h>
6 typedef HANDLE descriptor_t;
7 typedef HANDLE proc_pid_t;
8 #else
9 typedef int descriptor_t;
10 typedef pid_t proc_pid_t;
11 #endif
12 
13 typedef struct {
14 	descriptor_t parent, child;
15 	int fd;
16 } pipe_t;
17 
18 typedef struct {
19 	pipe_t in, out, err;
20 	proc_pid_t child;
21 } proc_handler_t;
22 
23 int proc_close(proc_handler_t *ht);
24 int proc_open(proc_handler_t *ht, const char *command);
25 int proc_open_buffer(const char *command, buffer *in, buffer *out, buffer *err);
26