gpt4 book ai didi

linux - lseek() on/dev/watchdog 导致系统崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:15 26 4
gpt4 key购买 nike

我是这个论坛的新手,想请教专家一个问题。我写了下面的程序(一个更大的东西的一部分,但这是给我带来麻烦的代码)

#include <unistd.h>
#include <fcntl.h>

int main()
{
int fd;
fd = open("/dev/watchdog",O_RDONLY);
lseek(fd,0,SEEK_END);
return 0;
}

让我困扰的是,在我以 root 身份运行这个程序后,20-30 秒后,系统崩溃了,我似乎无法弄清楚原因。作为普通用户,这不会发生。能否就此问题赐教?

谢谢!

附言。是的,我知道/dev/watchdog 是一个字 rune 件,它是不可搜索的,但这看起来真的很奇怪。

最佳答案

看起来/dev/watchdog 正在做它应该做的事情。一旦你打开/dev/watchdog,你必须继续写入它,否则系统会重启。崩溃的可能不是 lseek,而是缺乏写作。有关详细信息,请参阅看门狗的 linux 联机帮助页。

当您以非 root 用户身份运行时,您打开/dev/watchdog 可能刚刚失败,因此系统没有重新启动。您的代码没有检查来自 open() 的错误。

关于linux - lseek() on/dev/watchdog 导致系统崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com