24 lines
379 B
C
24 lines
379 B
C
|
#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);
|
||
|
}
|
||
|
}
|