Sut i ladd proses plentyn trwy'r broses riant?

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?

24
задан miraj 28 June 2011 в 04:23
поделиться

1 ответ

Попробуйте что-то вроде этого:

#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.
         */
    }
}
7
ответ дан 28 November 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: