Я пытаюсь выполнить файл, используя fork
и execvp
, однако сталкиваюсь с некоторыми ошибками. Я не нашел никаких решений проблемы, с которой я сталкиваюсь здесь, в Интернете, так как я не получаю никаких ошибок от своего exevp и не запускаю его. Вот мой код:
pid_t child;
int status;
child = fork();
char *arg[3] = {"test","/home/ameya/Documents/computer_science/cs170/project1", (char*) 0};
if(child == 0){
printf("IN CHILD BEFORE EXECVP\n");
int value = execvp(arg[0],arg);
if(value < 0){
printf("ERROR\n");
}else{
printf("In Child : %i\n", value);
}
}
if(waitpid(child, &status, 0) != child){
printf("ERROR IN PROCESS\n");
}
printf("In Parent\n");
Когда я пытаюсь запустить этот код, он выводит только «IN CHILD BEFORE EXCEPTION» и «IN PARENT», он не печатает никаких промежуточных операторов printf, почему он это делает. Файл, который я пытаюсь запустить, представляет собой простой исполняемый файл, который выводит «hello world» на стандартный вывод.
Спасибо за любую помощь