2012-04-24 3 views

답변

3

예, 예외를 포함하여 signal을 사용하여 특정 신호에 대한 콜백을 등록 할 수 있습니다.

+0

무엇을 의미합니까? 가이드 나 링크가 있습니까? – eladyanai

+0

@ eladyanai22 http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_21.html –

+0

그것은 나를 위해 매우 복잡했지만 어떻게 관리했는지. 대단히 감사합니다! – eladyanai

0

일반적으로 프로그램이나 시스템 크래시는 C의 퍼스펙 (perview) 밖에 있습니다. 이러한 것들을 처리하고 처리하는 데 OS의 기능을 조사해야합니다 (물론 OS에 따라 다릅니다).

"예외"의 경우 일반적으로 예외 처리를 수행하는 구형 C의 일반적인 관용구는 goto입니다. return 문 뒤에 레이블을 붙여 "예외 처리기"로 사용하고 그 레이블을 감지하고 예외적 인 조건으로 goto을 호출합니다.

1

C에서 예외 스타일 처리를 구현하려는 경우 setjmp() and friends이 있지만 조심성이 없다면 이것은 검은 색 마술이며 발밑에서 자신을 촬영할 수있는 좋은 방법입니다.

다른 오류의 경우 "예외"가 의미하는 내용에 따라 다릅니다. 나는 당신이 라이브러리 함수를 호출 할 때 에러를 의미한다고 생각할 수있다. (어떤 경우에는 반환 값을 적절하게 체크해야한다) SEGV를 사용하면 SIGSEGV와 프로세스를 얻을 수있다. 은 곧 죽을 것이다. . 신호 처리기를 작성하여 backtrace()을 사용하여 실마리를 제공 할 수 있지만 그 이상은 아닙니다.

2

예외 처리의 기본 기능은 오류가 발생하면 예외 처리기로 제어를 전송하는 것입니다. 처리기는 현재 함수 호출 계층 구조의 상위 위치에 상주합니다. 표준 C에는 setjmp() 및 longjmp()를 수행하는 메커니즘이 있습니다. Thisthis은 C에서 예외 처리에 대해 설명하는 두 가지 좋은 기사입니다. Microsoft Visual C를 사용하여 작업하는 경우 일반적으로 실행을 종료하는 이벤트가 발생할 때 응용 프로그램이 프로그램을 제어 할 수있게 해주는 C 언어의 확장자 인 try-except statement을 찾습니다.

관련 문제