-2
내가 온라인 튜토리얼에서 참조 신호 처리 프로그램 다음 시도했지만, 그것이 작동 보인다되지 않습니다, 내 코드에 어떤 문제가 있는지 :내 신호 처리기가 sigaction 기능을 사용하여 작동하지 않는 이유는 무엇입니까?
#include<signal.h>
#include<unistd.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
typedef void (*SignalHandlerPointer)(int);
static void UsrHostSigAbort(int pSignal)
{
//stopService();
printf("pankaj");
}
void HandleHostSignal()
{
struct sigaction satmp;
memset(&satmp, '\0' , sizeof(satmp));
SignalHandlerPointer usrSigHandler;
satmp.sa_flags &= ~SA_SIGINFO;
satmp.sa_handler = UsrHostSigAbort;
usrSigHandler = sigaction (SIGINT , &satmp, NULL);
}
void main()
{
HandleHostSignal();
while(1)
{
sleep(1);
}
}
내가 컴파일하고 우분투에서이 프로그램을 실행하고 있습니다.
사용중인 운영 체제는 무엇입니까? – Ari0nhh
@ Ari0nhh 우분투입니다.이 정보로 Q를 업데이트했습니다. –
[신호 처리기에서'printf()'사용을 피하는 방법?] (http://stackoverflow.com/questions/16891019/) 아마 문제의 원인은 아니지만, 설명 된 문제를 알고 있어야합니다. –