제목 : Rough Timer
언어 : C, C++
OS : Ubuntu 14.04
컴파일러 : gcc, g++
라이센스 : 누구나, 어디서나 쓸 수 있습니다. (누가 쓰겠냐마는...)
usleep() 함수를 이용해 타이머를 만들어 보았다. (첨부파일 참조)
예를 들어 2초짜리 타이머를 등록하면,
쓰레드에서 100ms 마다 1씩 카운트하여 2초가 됐을 때 콜백함수를 호출하는 방식이다.
고로, 정확도는 떨어지며 100ms 이하 타이머는 사용할 수 없다.
정확도 보다도 "약 몇초 후에" 식으로 운영되는 타이머라면 심플하게 쓸 수 있을 것이다.
이에 Rough Timer 로 명명하였다.
C++ 코드는 STL List 를 사용하였고,
C 코드는 간단히 linked-list 함수를 만들어 사용하였다.
코드 안에 main() 함수에서 간단한 테스트 코드를 볼 수 있다.
(주의사항 : 타이머 발동 시, 호출되는 콜백함수는 최대한 빨리 빠져나와야 한다.
그렇지 않으면 전체 타이머 시간과 다른 타이머에 영향을 준다.)
'삽질미학 > C,C++' 카테고리의 다른 글
[C++] 조합 구하기 (0) | 2017.07.13 |
---|---|
[C++] 순열 구하기 (0) | 2017.07.12 |
[Linux C++] 메시지큐 기반 task 처리하기 (0) | 2017.06.16 |
fd_set 구조체 값을 변경시키는 select 함수 (4) | 2017.06.16 |
[Linux C] pthread_join 호출 시 메모리 충돌 (0) | 2017.06.15 |