내 프로그램에 신호 처리기가 등록되어 있습니다. 원하지 않는 신호 (SIGABRT)를 받으면 신호 처리기에서 'exit (-1)'을 호출하여 프로세스를 종료합니다. 그러나 거의 발생하지 않는 것으로 알려지면서 exit()를 호출하지만 프로세스를 종료하지 못합니다.exit() 프로세스를 종료하지 못합니까?
문제는 무작위로 생성되었으며 exit()를 실행하는 것이 좋습니다.
exit()가 프로세스를 종료하지 못할 수있는 이유나 경우가있을 수 있습니다.
감사합니다.
버그에 대한 또 다른 원인을 'exit'와 같은 기능보다 찾는 것이 가장 좋습니다.거의 항상, 컴파일러 나 표준 라이브러리 등에 버그가 있다고 생각할 때, 오류를 일으키는 것은 당신 자신의 실수입니다. – Shahbaz
@Shahbaz : Mandar는 구현에서 버그를 묻지 않거나 버그가 있음을 제안하지 않습니다. 문제는 'exit'이 항상 프로그램을 종료하도록 지정되었는지, 그리고 응답이 아니오 (특히 신호 처리기에서 호출 된 경우)가 아닌지 여부입니다. –
SIGABRT의 핸들러를 exit()로 설정하지 않는 이유는 무엇입니까? 시그널 핸들러에서 무엇을 하든지, atexit() 호출로 처리하십시오. –