Lines Matching refs:proc
98 static int proc_open_pipes(proc_handler_t *proc SECURITY_DC) { in proc_open_pipes()
99 if (pipe_open(&(proc->in), 0 SECURITY_CC) != 0) { in proc_open_pipes()
102 if (pipe_open(&(proc->out), 1 SECURITY_CC) != 0) { in proc_open_pipes()
105 if (pipe_open(&(proc->err), 2 SECURITY_CC) != 0) { in proc_open_pipes()
112 static void proc_close_pipes(proc_handler_t *proc) { in proc_close_pipes() argument
113 pipe_close(&proc->in); in proc_close_pipes()
114 pipe_close(&proc->out); in proc_close_pipes()
115 pipe_close(&proc->err); in proc_close_pipes()
119 static void proc_close_parents(proc_handler_t *proc) { in proc_close_parents() argument
120 pipe_close_parent(&proc->in); in proc_close_parents()
121 pipe_close_parent(&proc->out); in proc_close_parents()
122 pipe_close_parent(&proc->err); in proc_close_parents()
126 static void proc_close_childs(proc_handler_t *proc) { in proc_close_childs() argument
127 pipe_close_child(&proc->in); in proc_close_childs()
128 pipe_close_child(&proc->out); in proc_close_childs()
129 pipe_close_child(&proc->err); in proc_close_childs()
135 int proc_close(proc_handler_t *proc) { in proc_close() argument
136 proc_pid_t child = proc->child; in proc_close()
139 proc_close_pipes(proc); in proc_close()
148 int proc_open(proc_handler_t *proc, const char *command) { in proc_open() argument
170 if (proc_open_pipes(proc, &security) != 0) { in proc_open()
173 proc_close_parents(proc); in proc_open()
178 si.hStdInput = proc->in.child; in proc_open()
179 si.hStdOutput = proc->out.child; in proc_open()
180 si.hStdError = proc->err.child; in proc_open()
203 proc->child = pi.hProcess; in proc_open()
206 proc_close_childs(proc); in proc_open()
213 int proc_close(proc_handler_t *proc) { in proc_close() argument
214 pid_t child = proc->child; in proc_close()
218 proc_close_pipes(proc); in proc_close()
235 int proc_open(proc_handler_t *proc, const char *command) { in proc_open() argument
243 if (proc_open_pipes(proc) != 0) { in proc_open()
258 proc_close_parents(proc); in proc_open()
266 proc_close(proc); in proc_open()
270 proc->child = child; in proc_open()
271 proc_close_childs(proc); in proc_open()
294 proc_handler_t proc; in proc_open_buffer() local
296 if (proc_open(&proc, command) != 0) { in proc_open_buffer()
301 if (write(proc.in.fd, (void *)in->ptr, in->used) < 0) { in proc_open_buffer()
306 pipe_close(&proc.in); in proc_open_buffer()
309 proc_read_fd_to_buffer(proc.out.fd, out); in proc_open_buffer()
311 pipe_close(&proc.out); in proc_open_buffer()
314 proc_read_fd_to_buffer(proc.err.fd, err); in proc_open_buffer()
317 proc_read_fd_to_buffer(proc.err.fd, tmp); in proc_open_buffer()
324 pipe_close(&proc.err); in proc_open_buffer()
326 proc_close(&proc); in proc_open_buffer()
335 proc_handler_t proc; in main() local
349 wstatus = proc_close(&proc); \ in main()
358 wstatus = proc_close(&proc); \ in main()
372 if (proc_open(&proc, "echo 321") != 0) { in main()
375 close_descriptor(proc.in.parent); in main()
376 close_descriptor(proc.out.parent); in main()
377 close_descriptor(proc.err.parent); in main()