📄 wdt_test.c
字号:
/* * wdt_test.c * Watchdog Driver Test Program */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <sys/ioctl.h>#include <linux/types.h>#include <linux/watchdog.h>int fd, timeout;/* * This function simply sends an IOCTL to the driver, which in turn ticks * the PC Watchdog card to reset its internal timer so it doesn't trigger * a computer reset. */void keep_alive(void){ int dummy; ioctl(fd, WDIOC_KEEPALIVE, &dummy);}/* * The main program. Run the program with "-d" to disable the card, * or "-e" to enable the card. */int main(int argc, char *argv[]){ fd = open("/dev/watchdog", O_WRONLY); if (fd == -1) { fprintf(stderr, "Watchdog device not enabled.\n"); fflush(stderr); exit(-1); } if (argc > 1) { if (!strncasecmp(argv[1], "-test", 5)) { ioctl(fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD); while (1){ sleep(100); } } else if (!strncasecmp(argv[1], "-d", 2)) { ioctl(fd, WDIOC_SETOPTIONS, WDIOS_DISABLECARD); fprintf(stderr, "Watchdog card disabled.\n"); } else if (!strncasecmp(argv[1], "-e", 2)) { ioctl(fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD); fprintf(stderr, "Watchdog card enabled.\n"); } else if (!strncasecmp(argv[1], "-t", 2) && (argc > 2)) { timeout = atoi(argv[2]); ioctl(fd, WDIOC_SETTIMEOUT, &timeout); fprintf(stderr, "Set timeout %s sec.\n", argv[2]); } else { fprintf(stderr, "-d to disable, -e to enable, -t val to set timeout.\n"); fprintf(stderr, "run by itself to tick the card.\n"); } fflush(stderr); exit(0); } else { fprintf(stderr, "Watchdog Ticking Away!\n"); fflush(stderr); } while(1) { keep_alive(); sleep(1); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -