0

我有几个问题:

  1. 经过一定时间后,以下 C++ 代码是否会导致我的硬盘空闲?

    #include <stdio.h>
    
    int main()
    {
        while(1);
    }
    
  2. 如果是这样,我可以在此代码中添加什么以确保我的硬盘在执行期间不会空闲?

  3. 无论如何,通过 C++ 代码检查我的硬盘是否处于空闲状态?

注意:我使用的是 Windows 7

4

1 回答 1

3
  1. 如果启用了空闲,是的,因为它不访问硬盘驱动器。
  2. 没有什么; 您的代码甚至可能无法从硬盘运行。即使您添加代码来读取某些数据,它也可能会被缓存并且不会触及磁盘。您可能可以先写入然后刷新,以确保将数据提交到磁盘,但这会在刷新期间阻塞您的程序(而且这种方法也不可靠。)
  3. 可能是您可以使用 SMART 左右进行检查,但请记住,您的程序可能不在硬盘驱动器上运行 - 可能在 SSD 上,可能在网络上,可能来自 RAM 磁盘。

一般来说,你不应该在你的程序中包含这样的假设。如果您需要触摸磁盘并且您担心硬盘驱动器可能会关闭并需要很长时间,请要求用户禁用硬盘驱动器睡眠。对于服务器应用程序,这很可能不是问题,因为驱动器始终在运行。对于 SSD 和其他东西,无论如何这都不是问题,因为这些驱动器不会从空闲状态“旋转”。

于 2013-01-15T06:47:24.930 回答