21 lines
463 B
Plaintext
21 lines
463 B
Plaintext
|
void launch_program(StringArray *args) {
|
||
|
pid_t child = 0;
|
||
|
|
||
|
child = fork();
|
||
|
|
||
|
if (child == 0) {
|
||
|
if (execvp(args->array[0], args->array) == -1) {
|
||
|
fprintf(stderr, "%s: command not found\n", args->array[0]);
|
||
|
free_string_array(args);
|
||
|
exit(EXIT_FAILURE);
|
||
|
}
|
||
|
}
|
||
|
else if (child < 0) {
|
||
|
perror("fork");
|
||
|
}
|
||
|
else {
|
||
|
int child_status;
|
||
|
waitpid(child, &child_status, 0);
|
||
|
}
|
||
|
}
|