/*C# Timer.ElapsedEventHandler(tme_tick) 과 같은 효과(Linux)*/
/*C# Timer.ElapsedEventHandler(tme_tick) 과 같은 효과(Linux)*/
#include <unistd.h>
#include <time.h>
#include <signal.h>
#include <stdio.h>
void time_tick()
{
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 = time_tick; // 타이머 호출시 호출할 함수
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;
createTimer(&timerID,5, 0);
while(1)
{
//,,
}
}
'c 언어 > 중급과정' 카테고리의 다른 글
일반적인 file send/recv(windows src) (0) | 2024.05.02 |
---|---|
C언어 기초 - 쓰레드 이해하고 사용하는 방법(windows 10) (0) | 2021.11.16 |
구조체안에 선언되어진 함수 실행하기(함수를 구조체 변수로 갖는경우) (0) | 2021.08.06 |
#ifdef ____KeyWord________________ (0) | 2021.08.05 |
컴파일과정에서 코드추가 가능(#define PIE 3.1416) (0) | 2021.08.05 |