Linux Watchdog Test Program

/***********************************************************************
 *                  Linux Watchdog Test Program
 * 说明:
 *     由于之前的reset一直没有得到解决,所以这个Watchdog功能一直没有处理,
 * 现在问题解决了,于是需要加入这个测试程序。
 *
 *                                    2016-4-15 深圳 南山平山村 曾剑锋
 **********************************************************************/

#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>

// watchdog 只要一直打开设备节点不喂,然后等待设定的时间结束引发reset。
int main(void)
{

    int fd;
    fd = open("/dev/watchdog", O_WRONLY);

    if (fd == -1) {
        fprintf(stderr, "Watchdog device not enabled.
");
        fflush(stderr);
        exit(-1);
    }

    int timeout = 5;
    ioctl(fd, WDIOC_SETTIMEOUT, &timeout);
    printf("The timeout was set to %d seconds
", timeout);

    int timeleft = timeout;
    while((timeleft--) >= 0) {
        printf("The timeout left %d seconds
", timeleft);
        sleep(1);
    }
}
原文地址:https://www.cnblogs.com/zengjfgit/p/5396041.html