2011-04-21 4 views

답변

2

자신 만의 SIGWHATEVER를 추가하거나 등록 할 수 없습니다.

sigset_t을 참조하십시오. 고정 크기입니다. valid_signal() beartraps를 참조하십시오.

+1

어디서'valid_signal()'을 얻을 수 있습니까? 나는 어떤 man 페이지도 찾을 수 없었다. – kingsmasher1

+1

@ kingsmasher1 :'valid_signal()'은 신호가 <신호의 개수 인 경우 true를 반환하는 리눅스 커널의 함수입니다. 그것은 자신의 신호를 정의하는 것과 같은 일을하지 못하도록'kill()'시스템 콜과 같은 것들에 의해 사용됩니다. – JeremyP

+1

http://lxr.free-electrons.com/ident?v=2.6.28;i=valid_signal – JeremyP

4

사용자가 정의한 목적으로 설계된 USR1USR2 신호가 있습니다.

+0

하지만 미리 정의되어 있습니다. 신호 번호는 고유하지 않을 겁니다, 그렇죠? – kingsmasher1

2

USR1과 USR2를 사용할 수 있습니다.

충분하지 않다면, 외부 응용 프로그램이 메시지를 보낼 수있는 소켓에서 응용 프로그램을 수신하도록하여 동작과 유사한 신호를 에뮬레이트 할 수 있습니다.

+0

하지만이 경우 신호 처리기로 등록 할 수 없습니다. 우리가 할 수 있을까요? 왜냐하면이 신호가 타이머에 의해 사용될 때이 신호는 고유해야하며 기존 신호와 충돌하지 않아야합니다. 그래서 소켓 메소드는 실행 가능하지 않습니다. – kingsmasher1

+0

프로그램 안에 완전히 들어 있으면 신호를 사용할 필요가 없습니다. 간단한 메시징 시스템을 구현하고이를 사용할 수 있습니다. 신호는 프로세스 간의 비동기 통신에 사용하는 것이 가장 좋습니다. –

+0

Noufal은 POSIX 타이머 timer_create에서 사용할 수 없습니다. – kingsmasher1

4

당신은, 당신이 원하는대로 사용할 수 있습니다 (이 일반적으로 상수하지만 런타임에 평가 기능을 확장 매크로 없습니다) 특별한 신호 :

9

SIGRTMINSIGRTMAX을 통해 함께 자신의 커널을 컴파일 할 수 SIGUSR1SIGUSR2. 전자는 추가 실시간 대기열 지원을 제공합니다. 후자는 그렇지 않습니다. 사용하기 만하면됩니다.

+0

이 대답은 받아 들여지지 않았습니다. – Mawg

관련 문제