sigaction handler에 매개변수 전달

uviczz의 이미지

void handler(int signo)
{
}
 
int main(void)
{
	struct sigaction sa;
 
	sa.sa_handler = handler;
 
	sigaction(SIGVTALRM, &sa, NULL); 
 
        setitimer(...);
 
	while(1)
	{
		sleep(1);
	}
 
	return 0;
}

간단하게 표현한 위와 같은 코드에서

Handler에 전달되는 매개변수는 signo 밖에 없습니다.
(출력해보니 26이 나오는군요.. SIGVTALRM이 26인가 봅니다..)

그렇다면 리눅스에서 위와 같은 형태의 코드에서 handler에
사용자 매개변수를 전달하는 방법은 없는지 궁금합니다.

고수님들 답변 부탁드립니다.

좋은 하루 되세요!

cococo의 이미지

handler가 발동하는 시점 자체가 외부 입력에 의하기 때문에,
인자를 지정할 위치조차 지정이 불가능할텐데요.
만일 조건에 따라 handler의 행동이 달라야 한다면, global을 쓸 수 밖에 없을테구요.
아닌가요???

행복은 희생없이는 얻을 수 없는 것인가?
시대는 불행없이는 넘을 수 없는 것인가?