Linux/Linux 일반 watchdog app Real_G 2017. 1. 17. 16:23 반응형 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //---------------------------------------------------------------------------------------------------- #define GDEBUG #ifdef GDEBUG # define gprintf(msg...) do { fprintf(stderr,"%s %s() %d: ", __FILE__, __FUNCTION__, __LINE__); fprintf (stderr,msg);} while (0) // # define gprintf(fmt, x...) do { syslog(KERN_DEBUG,"%s %s() %d: " fmt, __FILE__, __FUNCTION__, __LINE__, ##x);} while (0) #else # define gprintf(msg...) #endif //---------------------------------------------------------------------------------------------------- int main(){ int wdog_fd = -1; int wdog_timeout = 10; int wdog_timeout_ret = 0; if( 0 > (wdog_fd=open("/dev/watchdog", O_RDONLY))) { gprintf("/dev/watchdog open error.\n"); return -1; } gprintf("watchdog open ok\n"); gprintf("Set watchdog timeout:%d\n",wdog_timeout); if (ioctl(wdog_fd, WDIOC_SETTIMEOUT, &wdog_timeout) < 0) { gprintf("ioctl WDIOC_SETTIMEOUT failed\n"); return -1; } if (ioctl(wdog_fd, WDIOC_GETTIMEOUT, &wdog_timeout_ret) < 0) { gprintf("ioctl WDIOC_GETTIMEOUT failed\n"); return -1; } gprintf("Get watchdog timeout:%d\n",wdog_timeout_ret); while(1){ if (ioctl(wdog_fd, WDIOC_KEEPALIVE, &wdog_timeout_ret) < 0) { gprintf("ioctl WDIOC_KEEPALIVE failed\n"); return -1; } sleep(5); } return 0; } 반응형 저작자표시 비영리 변경금지 (새창열림)