prevendo excessões

Iniciado por kcnp, 15 de Março de 2008, 18:44

tópico anterior - próximo tópico

kcnp

 ??? ??? ???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

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.