X window 프로그램 짤때, sleep( )시키면 Display 포인터 값이 없어지는 문제입니다.
안녕하신지요. 질문이 있어 이렇게 글을 올립니다.
X window 용 어플을 짜고 있는데요.
지금 만드는게... 일종의 스크린 세이버 혹은 광고처럼, 일정 시간이 지나면 설정된 파일 리스트의 이미지 파일을 순서대로 보여주는 겁니다.
근데요. 이상한게...
1. X는 타이머 이벤트가 없나요?
당연히 있을 줄 알았는데, 찾아보니 이벤트 목록중에 TIMER MASK 뭐 이런게 없더라구요? 좀 의외긴 했습니다만, 혹시 있는데 제가 못 찾은 걸 수도 있으니까요.
2. sleep()을 사용하면, Display 구조체 포인터의 값이 0이 되는 거 맞나요?
타이머 기능을 흉내내도록, thread를 하나 생성해서 거기에 while(1)로, sleep()을 써서,
Change_Image_By_Time( int interval, Display *dsp, Window wID )
while(1)
{
i++;
sleep(interval);
Wnd_Load_Image( dsp, wID, ChangeImaegList[i] ) ;
}
대략 이런 식으로 했습니다.
근데... 자꾸 에러 나길레 뒤져보니, sleep()이 발동하면 dsp값이 0가 되 버리더라구요.
이거 원래 이런가요? 뭐가 잘못되었는지 ... -_-; 게다가, 이런 식이라면 일반적인 XWindow 의 타이머 이벤트는 어떻게 쓰는 지 잘 모르겠네요.
아시는 분....답변 주시면, 감사하겠습니다.
그럼, 주말 잘 보내세요.
덧글 : 여기 글을 검색하는 방법을 모르는데, 이건 어디에 질문해야 되나요? ^^;;
댓글 달기