Blob
1 #include <u.h>2 #include <libc.h>3 #include <thread.h>4 #include <bio.h>5 #include <ndb.h>6 #include "dns.h"8 Waitmsg*9 runprocfd(char *file, char **v, int fd[3])10 {11 int pid, i;13 threadwaitchan();14 pid = threadspawn(fd, file, v);15 for(i=0; i<3; i++)16 close(fd[i]);17 if(pid < 0)18 return nil;19 return procwait(pid);20 }22 Waitmsg*23 runproc(char *file, char **v, int devnull)24 {25 int fd[3], i;27 if(devnull){28 fd[0] = open("/dev/null", ORDWR);29 fd[1] = dup(1, fd[0]);30 fd[2] = dup(2, fd[0]);31 }else{32 for(i=0; i<3; i++)33 fd[i] = dup(i, -1);34 }35 return runprocfd(file, v, fd);36 }