changes from erik quanstrom
This commit is contained in:
parent
05f5d46b63
commit
19256e0dd9
8 changed files with 77 additions and 52 deletions
37
src/cmd/ndb/runproc.c
Normal file
37
src/cmd/ndb/runproc.c
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#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);
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue