You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
379 B
24 lines
379 B
3 years ago
|
#include <sys/wait.h>
|
||
|
|
||
|
void
|
||
|
plumb(char *sel) {
|
||
|
if (sel == NULL)
|
||
|
return;
|
||
|
char cwd[PATH_MAX];
|
||
|
pid_t child;
|
||
|
if (subprocwd(cwd) != 0)
|
||
|
return;
|
||
|
|
||
|
switch(child = fork()) {
|
||
|
case -1:
|
||
|
return;
|
||
|
case 0:
|
||
|
if (chdir(cwd) != 0)
|
||
|
exit(1);
|
||
|
if (execvp(plumb_cmd, (char *const []){plumb_cmd, sel, 0}) == -1)
|
||
|
exit(1);
|
||
|
exit(0);
|
||
|
default:
|
||
|
waitpid(child, NULL, 0);
|
||
|
}
|
||
|
}
|