처리 될 수있는 신호는 다음과 같습니다 : 시진트, SIGABRT, SIGFPE, 시길, SIGSEGV, SIGTERM, SIGHUP 신호 핸들러는 신호 () 또는 sigaction()로 설정 될 수있다. signal()의 동작은 기록 전반에 걸쳐 여러 번 변경되었으며 이제 더 이상 사용되지 않은 것으로 간주됩니다[3]. 신호의 성향을 SIG_DFL 또는 SIG_IGN으로 설정하는 데 사용할 때만 이식가능합니다. 신호 처리기는 두 개의 신호를 제외한 모든 신호에 대해 지정될 수 있습니다(SIGKILL 및 SIGSTOP은 잡히거나 차단되거나 무시할 수 없음). 리눅스 신호 시리즈의 1 부에서, 우리는 리눅스 신호 뒤에 기본 개념에 대해 배웠습니다. 다음은 또 다른 간단한 예입니다. 이 프로그램을 다운로드하려면 여기를 클릭하십시오. (신호 종료) 프로그램에 전송된 종료 요청입니다. 전제 조건 : 포크 시스템 호출 대기 시스템 신호는 사용자 프레스 ctrl-c 또는 다른 프로세스가이 프로세스에 뭔가를 말할 때 때문에 OS에 의해 프로세스로 전송되는 소프트웨어 생성 인터럽트입니다. 프로세스로 전송할 수 있는 수정 된 신호 집합이 있습니다. 신호는 정수로 식별됩니다.

신호 번호에는 기호 이름이 있습니다. 예를 들어 SIGCHLD는 자식이 종료될 때 부모 프로세스로 전송되는 신호의 수입니다. 예: 설명: 신호는 운영 체제에서 프로세스에 전달되는 소프트웨어 인터럽트입니다. 시스템 또는 오류 조건에 따라 운영 체제에서 신호를 발행할 수도 있습니다. 일부 에 대한 기본 동작이 있습니다 (즉, 키 입력 ctrl-C를 눌러 inturrupt SIGINT 신호를 수신 할 때 프로세스가 종료됩니다)하지만이 튜토리얼은 신호를 관리하기 위해 콜백 기능을 정의하여 신호를 처리하는 방법을 보여줍니다. 가능한 경우 파일을 닫고 작업을 수행하고 프로그래머가 정의한 방식으로 대응할 수 있습니다. (신호 부동 점 예외) 0 분할 또는 오버플로를 초래하는 작업과 같은 잘못된 산술 연산(부동 점 연산이 반드시 발생하는 것은 아님). (신호 세분화 위반) 저장소에 대한 잘못된 액세스 – 프로그램이 읽기 또는 메모리 외부에 쓰기를 시도 할 때 그것은 할당됩니다. (신호 불법 명령) 잘못된 기능 이미지(예: 잘못된 명령)

Catégories :