IT한 것/unix

HP-UX 32bit 모듈의 pstat_getproc 가 실패할때.

lovian 2008. 5. 8. 20:00
프로세스의 정보를 알아내기 위해서 pstat_getproc 를 이용하기로 하였다.
마침 원하는 정보가 있었기에 아무 부담없이 사용하며 잘 작동하였다.

처음에는 64비트로 테스트를 했었는데, 문득 32비트가 궁금해서 테스트를 시도했더니.
ERRNO 72 EOVERFLOW와 함께 실패했다.

사유를 알아본 즉. 32비트 모듈이 32비트 프로세스의 정보를 pst_status(pstat_getproc에 넘겨줄 정보를 넣을 구조체)에 입력하는데에 아무 지장이 없겠지만. HP-UX머신에는 32/64 바이너리가 혼재하여 있으므로 64비트 프로세스의 정보를 32비트 구조체에 정보를 입력하는데에 문제가 발생한다고 한다.

이번에도 컴파일 플래그로 해결이 되었다.

그리고 그 값은 _PSTAT64 이다.
예를 들면
cc -D_PSTAT64 test.c -o test
라는거다.


여기서 참조