Есть ли способ на языке программирования C остановить дочерний процесс, а затем вызвать его снова, чтобы начать с самого начала?Я понял, что если я использую SIGKILL и затем снова вызываю дочерний процесс, ничего не происходит.
void handler {
printf(“entered handler”);
kill(getpid(),SIGKILL);
}
int main () {
pid_t child;
child=fork();
if (child<0) printf(“error”);
else if (child==0) {
signal(SIGINT,handler);
pause();
}
else {
kill(child,SIGINT);
kill(child,SIGINT);
}
Это должно вывести два раза «Entered Handler», но это не так.Вероятно, потому что это не может снова вызвать ребенка.Могу ли я исправить это каким-то образом?