고수님들 AIX siginfo 구조체에 관련된 질문입니다.
리눅스에서 제작한 프로그램에서 타이머를 이용하는데,
POSIX.1b의 timer인 timer_create()등의 API를 사용해서 프로그램을 작성했습니다.
timer가 발생한 시그널을 처리하는 핸들러에서는
(sigaction의 flag를 SIGINFO로 설정해서 인자 세개받는 핸들러임)
typedef void (*SIGFUNC)(int, siginfo*, void*);
이런식으로 함수포인터에서 siginfo 구조체를 사용하는데
리눅스에서나 솔라리스8에서나 siginfo구조체가 선언되어있어서 잘돌아가는데
AIX 5L에서는 컴파일 에러가 납니다.
물론 -lrt 해줬습니다.
Timer.h:10: error: type specifier omitted for parameter `siginfo'
Timer.h:10: error: parse error before `*' token
Timer.h: In constructor `Timer::Timer(int, void (*)(...), int, int)':
Timer.h:28: error: invalid conversion from `void (*)(...)' to `void (*)(int,
siginfo_t*, void*)'
Timer.h:38: error: `SIGEV_SIGNAL' undeclared (first use this function)
Timer.h:38: error: (Each undeclared identifier is reported only once for each
function it appears in.)
NGHackit2.cc: In function `int main(int, char**)':
NGHackit2.cc:117: error: invalid conversion from `void (*)(int, siginfo_t*,
void*)' to `void (*)(...)'
NGHackit2.cc:117: error: initializing argument 2 of `Timer::Timer(int, void
도데체 AIX5L에서는 siginfo.h도 sys/siginfo.h도 없더군여...
그렇다면 AIX5L에서는 POSIX.1b의 Timer들을 사용할 수 없는 건 가여???
여러분들 다들 독감 조심 하십시오.
댓글 달기