리눅스 C언어 타이머(Timer) 사용법 및 예제!
Embeded/리눅스2017. 9. 19. 21:55
반응형
리눅스 C언어 타이머 사용법입니다
아래의 createTimer 함수를 호출만 하면 됩니다
간단히 주석도 달았으니 참고 하시면 될듯합니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <unistd.h> #include <time.h> #include <signal.h> #include <stdio.h> // 타이머 주기에 따라 호출될 타이머 void timer() { printf("timer\n"); } int createTimer( timer_t *timerID, int sec, int msec ) { struct sigevent te; struct itimerspec its; struct sigaction sa; int sigNo = SIGRTMIN; /* Set up signal handler. */ sa.sa_flags = SA_SIGINFO; sa.sa_sigaction = timer; // 타이머 호출시 호출할 함수 sigemptyset(&sa.sa_mask); if (sigaction(sigNo, &sa, NULL) == -1) { printf("sigaction error\n"); return -1; } /* Set and enable alarm */ te.sigev_notify = SIGEV_SIGNAL; te.sigev_signo = sigNo; te.sigev_value.sival_ptr = timerID; timer_create(CLOCK_REALTIME, &te, timerID); its.it_interval.tv_sec = sec; its.it_interval.tv_nsec = msec * 1000000; its.it_value.tv_sec = sec; its.it_value.tv_nsec = msec * 1000000; timer_settime(*timerID, 0, &its, NULL); return 0; } int main() { timer_t timerID; // 타이머를 만든다 // 매개변수 1 : 타이머 변수 // 매개변수 2 : second // 매개변수 3 : ms createTimer(&timerID,5, 0); while(1) { } } | cs |
실행화면입니다
5초 주기로 타이머가 실행됩니다
컴파일시 -lrt 옵션을 주어야 에러 없이 빌드가 됩니다
반응형
'Embeded > 리눅스' 카테고리의 다른 글
[리눅스] 부팅시 프로그램 자동 실행하는 방법!!! (0) | 2018.03.15 |
---|---|
[리눅스] 내부 네트워크 WOL 간단히 사용하기! (0) | 2017.10.07 |
[리눅스] 파일 내용에서 원하는 문자열 찾기!! (0) | 2017.08.31 |
리눅스 C언어 쓰레드(Thread) 사용법 및 예제! (1) | 2017.08.25 |
리눅스(우분투) 삼바(samba) 설치 및 설정법 (0) | 2017.08.24 |