Tratar sinais

1. Tratar sinais

kiotto
kiotto

(usa Ubuntu)

Enviado em 17/11/2008 - 13:54h

eu th este codigo:
void tratarSinalErro ()
{

struct sigaction act;
sigemptyset (&act.sa_mask);
act.sa_flags = 0;
act.sa_handler = trata_sinal;
sigaction (SIGINT, &act, NULL);

percorrer_directorio (NAO_ESCREVE_FILE, NULL, 0,0);
}





void trata_sinal (int sinal)
{

if (sinal == SIGINT) {
printf ("Ctrl+C\n");
exit (1);
}

}

agora e o seguinte, gostava de saber se e permitido na funca trata_sinal colocar mais parametros de entrada??


  


2. Re: Tratar sinais

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 17/11/2008 - 14:16h

se eu entendi a pergunta, você pode setar sa_flags para SA_SIGINFO, e então trata_sinal terá a seguinte forma:

void trata_sinal(int sinal, siginfo_t* info, void* contexto)

dê uma pesquisada em siginfo_t para determinar os valores mandatórios




3. Re: Tratar sinais

kiotto
kiotto

(usa Ubuntu)

Enviado em 17/11/2008 - 14:20h

tipo, eu quero tratar o sinal SIGINT e como ta o codigo ele trata aparecendo Ctl+C na shell, o que quero e que em vez disso ele ponha o resultado de duas variaveis (totalProcesso e processoActual) sendo que essas variaveis ja foram preenchidas anteriormente


4. Re: Tratar sinais

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 17/11/2008 - 16:17h

mas então basta modificar os parâmetros do printf






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts