Rwy'n creu proses plentyn gan ddefnyddio fforc [) 11114798 . Sut all y broses riant ladd y broses plentyn os na all y broses blentyn ei chyflawni o fewn 30 eiliad? Rwyf am ganiatáu i'r broses blentyn gyflawni hyd at 30 eiliad. Os bydd yn cymryd mwy na 30 eiliad, bydd y broses riant yn ei lladd. Oes gennych chi unrhyw syniad i wneud hynny?
Попробуйте что-то вроде этого:
#include <signal.h>
pid_t child_pid = -1 ; //Global
void kill_child(int sig)
{
kill(child_pid,SIGKILL);
}
int main(int argc, char *argv[])
{
signal(SIGALRM,(void (*)(int))kill_child);
child_pid = fork();
if (child_pid > 0) {
/*PARENT*/
alarm(30);
/*
* Do parent's tasks here.
*/
wait(NULL);
}
else if (child_pid == 0){
/*CHILD*/
/*
* Do child's tasks here.
*/
}
}