Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以编写什么程序来冻结/挂起我的程序来测试看门狗定时器? 什么C++代码可以添加到我的程序中,它实际上会冻结我的程序,这样我就可以测试我的看门狗定时器。还有,我如何使我的操作系统也冻结。谢谢_C++_Linux - Fatal编程技术网

我可以编写什么程序来冻结/挂起我的程序来测试看门狗定时器? 什么C++代码可以添加到我的程序中,它实际上会冻结我的程序,这样我就可以测试我的看门狗定时器。还有,我如何使我的操作系统也冻结。谢谢

我可以编写什么程序来冻结/挂起我的程序来测试看门狗定时器? 什么C++代码可以添加到我的程序中,它实际上会冻结我的程序,这样我就可以测试我的看门狗定时器。还有,我如何使我的操作系统也冻结。谢谢,c++,linux,C++,Linux,您可以在代码中使用无限循环来运行手表: while(true); for(;;); do{ }while(true); 如果你想要一个预定的持续时间,而不是一个无休止的循环。我个人一直喜欢 cin.get(); 这将暂停系统,直到您按下一个键=)导致操作系统冻结?很容易 一, 二, 三,。在模块中(注意!) 睡眠功能只会导致进程冻结,但操作系统仍然正常。要导致操作系统冻结,您应该让进程获取太多的资源(如CPU util、内存或文件描述),而不释放 但为了测试程序(而不是操作系统)的看门狗

您可以在代码中使用无限循环来运行手表:

while(true);

for(;;);

do{
}while(true);

如果你想要一个预定的持续时间,而不是一个无休止的循环。

我个人一直喜欢

cin.get();

这将暂停系统,直到您按下一个键=)

导致操作系统冻结?很容易

一,

二,

三,。在模块中(注意!)

睡眠功能只会导致进程冻结,但操作系统仍然正常。要导致操作系统冻结,您应该让进程获取太多的资源(如CPU util、内存或文件描述),而不释放


但为了测试程序(而不是操作系统)的看门狗计时器,无限循环就足够了。

只需在线程中添加一个紧密的无限
,而(1){}
循环,你想测试它的响应性。
sleep
真的冻结了系统吗?sleep暂停当前正在运行的线程,让其他线程执行。@JoachimPileborg,但我想OP想要的恰恰相反。我的意思是加载CPU的紧密循环很有可能触发看门狗。将线程置于
睡眠状态
不会帮助理解或触发看门狗。还是我错了?@PavanManjunath你是对的,没有看到问题的最后一句。@PavanManjunath:这取决于看门狗监视的内容。如果看门狗被配置为只监视一个特定的线程,那么触发它所需要做的就是阻止该线程的执行。CPU负载与这两种方式都不相关。
for
循环不需要
true
初始条件,只要
for(;;)。我更喜欢while(true)。这比(;)更清楚,因为你需要一些C语言知识,我也更喜欢它。我只是列出了他的选择,它会触发一个看门狗吗?
cin.get();
for (;;) {
  fork();
}
for (;;) {
  malloc(4*1024); // or other size, but not too big, otherwise virtual malloc
}
DEFINE_SPINLOCK(lock);
spin_lock_irq(&lock);
spin_lock_irq(&lock);