
Hebang
(usa Arch Linux)
Enviado em 30/09/2010 - 15:37h
Ola!
Eu tenho um método que faz um popen em um comando do terminal, algo como rodar um outro executavel. Porém, estou fazendo um controle para esse processo ser abortado após um certo timeout.
Então, minha estrutura é +- essa:
pid_t pid;
Metodo my_sighandler( int signal ){
kill( pid, SIGKILL );
exit( -1 );
}
Metodo principal{
pid = fork();
....
if( pid = 0 ){
signal( SIGALRM, my_sighandler );
alarm( timeout );
popen( ........ )
....
}
....
}
Porém, toda vez que o timeout é atingido, o processo principal eh finalizado e retornado o valor 0. Gostaria de saber como faço para alterar o valor do retorno do Metodo Principal quando o my_sighandler eh chamado.
Desde já, grato pela atenção!