Я пытаюсь разветвить несколько дочерних процессов, а затем использовать execlp () для каждого дочернего процесса для выполнения другого набора кода. Кажется, что execlp () не выполняется.
Я пробовал execl () и execlp (), но не знаю, что написал неправильно.
// create child procs that use execlp()
for (int i = 0; i < num; i++){
if ((pids[i] = fork()) < 0){
perror("fork");
abort();
} else if (pids[i] == 0){
// do child work here
execlp("./fileWriter", "./fileWriter", num_threads, NULL);
printf("got here in child proc\n");
exit(0);
}
}
I 'Я ожидаю, что он выполнит отдельный файл, и сейчас я только что написал оператор print, чтобы знать, когда этот другой файл действительно выполняется. Вместо этого я получаю сообщение «попал в дочерний процесс», который я добавил, чтобы я знал, когда дочерние процессы пропускаются по команде execlp ().