1. 程式人生 > >linux簡單易用的看門狗程式

linux簡單易用的看門狗程式

    看門狗程式是通過“喂狗”的形式不停的給watchdog寫入資料,一旦在一定的時間內沒有寫入,watchdog就會認為程式發生了崩潰,它能夠直接出發晶片復位,讓linux系統進行重啟。在實際的專案中具有重要的作用。

    本文講解linux中標準的看門狗程式,標準指的是裝置號為/dev/watchdog,程式如下:

void feed_watchdog()
{
	int wd_fd;	 
	wd_fd = open("/dev/watchdog",O_RDWR);
	if(wd_fd < 0)  
	{  
		printf("wd open failed\n");  
		return;
	}
	int timeout = 20;

    ioctl(wd_fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD);
    ioctl(wd_fd, WDIOC_SETTIMEOUT, &timeout);
	
	while(1)
	{
		sleep(10);
		ioctl(wd_fd,WDIOC_KEEPALIVE,NULL);
	}
	close(wd_fd);
    
}

ioctl(wd_fd, WDIOC_SETOPTIONS, WDIOS_ENABLECARD)是使能watchdog。

ioctl(wd_fd, WDIOC_SETTIMEOUT, &timeout),設定喂狗時間