Autor Tópico: prevendo excessões  (Lida 1913 vezes)

Offline kcnp

  • Usuário Ubuntu
  • *
  • Mensagens: 88
    • Ver perfil
prevendo excessões
« Online: 15 de MAR?O de 2008, 18:44 »
 ??? ??? ???Gente, é o seguinte. Eu sei que quando vocÊ tá executando um programa no terminal se apertar control c o programa é interrompido(fechado). Eu gostaria de saber como receber o sinal de que um programa foi interrompido para poder preve esse tipo de eventualidade nos meus programas. Por exemplo, eu tô fazendo na universidade uma matéria de estruturas de arquivos e a gente tá desenvolvendo, como trabalho da matéria, um simples catálogo de obras de arte. Eui gostaria de saber como eu faria para, em caso do usuário apertar control c, ou o programa fosse fechado por algum problema do sistema do ubuntu, eu prever esse problema e salvar as informações já passadas pelo usuário. Ou seja como perceber o sinal de exit() que o programa recebe nestes casos para prevê-lo em código? Eu programo em "C".
kcnp

Darcamo

  • Visitante
Re: prevendo excessões
« Resposta #1 Online: 16 de MAR?O de 2008, 00:28 »
Não sei muito a respeito disso, mas com uma busca do Google achei isso
http://www.cs.cf.ac.uk/Dave/C/

Dá uma olhada na parte "IPC:Interrupts and Signals: <signal.h>" que parece ser o que você precura.
Lá diz que quando se usa o Ctrl+C é enviado para o programa o sinal SIGINT. Acredito que basta você interceptá-lo e mandar chamar sua função para salvar os dados.