Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++의 raise() 함수

<시간/>

raise() 함수는 신호를 프로그램에 보내는 데 사용됩니다. 미리 정의된 함수 signal()이 호출됩니다. 신호를 무시할지 아니면 신호 처리기를 호출할지 확인하기 위해 구현됩니다. 이것은 "signal.h" 헤더 파일에 선언되어 있습니다. 성공하면 0을 반환하고 그렇지 않으면 0이 아닌 값을 반환합니다.

다음은 C 언어의 raise() 구문입니다.

int raise(int signal)

여기,

신호 − 호출할 신호 번호입니다.

다음은 C 언어로 된 raise()의 예입니다.

예시

#include <signal.h>
#include <stdio.h>
void handler(int sig) {
   printf("Signal received : %d\n", sig);
}
int main() {
   signal(SIGILL, handler);
   printf("Sending signal : %d\n", SIGILL);
   raise(SIGILL);
   return 0;
}

출력

Sending signal : 4
Signal received : 4

위의 프로그램에서는 main() 함수 이전에 함수 핸들러가 정의되어 있고, 메인 함수에서는 signal()이 호출되고 SIGILL( Signal Illegal Instruction )이 송수신됩니다.

signal(SIGILL, handler);
printf("Sending signal : %d\n", SIGILL);
raise(SIGILL);