Я не могу понять, что у меня не так с этим кодом. Это C на Linux-боксе.
Что он должен сделать, так это убить все дочерние процессы, которые я создал, дождаться завершения всех, а затем распечатать строку для каждого дочернего процесса с pid, номером процесса (я создаю) и номером сигнала (должен быть 9 для убитого ).
Так что я делаю неправильно?
void onalarm(int signo) {
int status[numberOfCores];
printf("Recieved alarm signal\n");
int cpu;
for (cpu = 0; cpu < numberOfCores; cpu++) {
kill(child_pid[cpu], SIGKILL);
}
for (cpu=0;cpu <numberOfCores;cpu++){
waitpid(-1, &status[numberOfCores],0);
}
for (cpu=0;cpu < numberOfCores;cpu++){
printf("pid = %i %ith child killed with signal ",child_pid[cpu],cpu);
printf("%i %s\n", WTERMSIG(status[cpu]), strsignal(WTERMSIG(status[cpu])));
}
exit(0);
waitpid
в первом цикле for после kill? - person Mohit Jain   schedule 07.05.2014