blob: 3dd93f0ed78c5f3704ec65c601af095aa74d9578 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include "process.h"
#include "err.h"
#include "log.h"
#include <sys/wait.h>
#include <unistd.h>
int
spawn(char **argv)
{
pid_t pid;
if (!argv[0] || *argv[0] == '\0') {
log_write(LOG_ERR, "Invalid argv");
return -1;
}
if ((pid = fork()) < 0) {
log_write(LOG_ERR, "fork error");
} else if (pid == 0) {
if (execvp(argv[0], argv) < 0) {
die("exec error");
}
} else {
wait(NULL);
}
return 0;
}
|