1
신호 처리기가 작동하는 방식을 연구하려고합니다. 나는 내가 100us에 한 번씩 경보 신호를 발생시키는 코드를 작성했다. 그러나 신호는 발생하지 않습니다.주 처리기에서 신호 처리기가 호출되지 않습니다.
#include <signal.h>
#include <ucontext.h>
#include <sys/time.h>
#include<unistd.h>
#include<setjmp.h>
#include<stdio.h>
void handler(int signum, siginfo_t *ptr, ucontext_t *old_context)
{
printf("inside handler");
}
int main()
{
struct itimerval itv;
struct sigaction act;
act.sa_handler = handler;
act.sa_flags=SA_RESTART|SA_SIGINFO;
sigaction(SIGVTALRM, &act, 0);
itv.it_interval.tv_sec=0;
itv.it_interval.tv_usec=100;
itv.it_value.tv_sec = 0;
itv.it_value.tv_usec = 100;
setitimer(ITIMER_VIRTUAL, &itv, NULL); //engage timer
int i=0;
while(i<=100)
{
printf("main\n");
i++;
}
}
어떤 사람이 내가 잘못하고있는 무슨 설명 할 수 있습니다 : 여기 코드는?
감사
루프 아마 실행 미만 100?를 취하고있다