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