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 }