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