better exit handling

This commit is contained in:
rsc 2005-01-18 18:13:16 +00:00
parent daefa1a92f
commit 3d867865ef
2 changed files with 32 additions and 3 deletions

View file

@ -111,6 +111,34 @@ threadspawn(int fd[3], char *cmd, char *argv[])
return _runthreadspawn(fd, cmd, argv);
}
int
threadspawnl(int fd[3], char *cmd, ...)
{
char **argv, *s;
int n, pid;
va_list arg;
va_start(arg, cmd);
for(n=0; va_arg(arg, char*) != nil; n++)
;
n++;
va_end(arg);
argv = malloc(n*sizeof(argv[0]));
if(argv == nil)
return -1;
va_start(arg, cmd);
for(n=0; (s=va_arg(arg, char*)) != nil; n++)
argv[n] = s;
argv[n] = 0;
va_end(arg);
pid = threadspawn(fd, cmd, argv);
free(argv);
return pid;
}
int
_threadexec(Channel *cpid, int fd[3], char *cmd, char *argv[])
{