Ir para conteúdo
Fórum Script Brasil
  • 0

Programa não fecha


Bruno Pacheco

Pergunta

Eu compilei tudo conforme abaixo num terminal linux e o programa em c só finalizou la no terminal quando eu dei kill -kill.

A minha dúvida é:-> porque o programa só resolve parar quando eu dou o comando kill -kill?

-> como é o funcionamento desse programa?

Compile o programa improc.c (abaixo) usando o comando "gcc improc.c -o improc". Execute uma sessão de terminal o comando improc, tente matá-lo (usando crtl-c) ou colocá-lo em suspenso (usando(crtl-z). Tente enviar outros sinais (usando kill) em outra sessão de terminal e veja que ocorre. Por fim, execute "kill -kill" para matar o processo.

#include <signal.h>

#include <unistd.h>

#include <stdio.h>



void foo (int sinal){



    printf ("\n***** Sou imortal e me recuso a morrer!!! *****");

    printf ("\n***** Jogando o sinal %2i no lixo!! *****\n", sinal);

}



int main (){



    char c;

    int s;

    for (s=1; s<35; s++){

        signal (s, foo);

    }

    while (1) {

        printf ("====> Hahahaha.. estou vivo e tenho PID %i\n", getpid ());

        sleep (3);

    }

    return 0;

}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

A função signal() diz o que o programa tem que fazer quando receber um certo sinal do sistema operacional.

Nesse código aí o programa tá setando todos os sinais possíveis pra responderem imprimindo aquelas strings lá.

Quando você usa o ctrl+c, ctrl+z, etc, você tá mandando sinais do teclado informando pro programa que ele deve terminar. Mas como o programa tá configurado pra ignorar esses sinais, o único jeito é forçando o KILL nele.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...