| #include <u.h> |
| #include <libc.h> |
| #include <thread.h> |
| #include <bio.h> |
| #include <ndb.h> |
| #include "dns.h" |
| |
| Waitmsg* |
| runprocfd(char *file, char **v, int fd[3]) |
| { |
| int pid, i; |
| |
| threadwaitchan(); |
| pid = threadspawn(fd, file, v); |
| for(i=0; i<3; i++) |
| close(fd[i]); |
| if(pid < 0) |
| return nil; |
| return procwait(pid); |
| } |
| |
| Waitmsg* |
| runproc(char *file, char **v, int devnull) |
| { |
| int fd[3], i; |
| |
| if(devnull){ |
| fd[0] = open("/dev/null", ORDWR); |
| fd[1] = dup(1, fd[0]); |
| fd[2] = dup(2, fd[0]); |
| }else{ |
| for(i=0; i<3; i++) |
| fd[i] = dup(i, -1); |
| } |
| return runprocfd(file, v, fd); |
| } |
| |