0

少し質問があります:

  1. 次のC++コードにより、一定の時間が経過した後、ハードディスクがアイドル状態になることはありますか?

    #include <stdio.h>
    
    int main()
    {
        while(1);
    }
    
  2. もしそうなら、実行中にハードディスクがアイドル状態にならないようにするために、このコードに何を追加できますか?

  3. C ++コードですが、ハードディスクがアイドル状態にあるかどうかを確認する方法はありますか?

注:私はWindows7を使用しています

4

1 に答える 1

3
  1. アイドルが有効になっている場合は、ハードドライブにアクセスしないため、はい。
  2. 何もない; コードをハード ドライブから実行することさえできない可能性があります。一部のデータを読み取るコードを追加しても、キャッシュされてディスクにアクセスしない場合があります。データが確実にディスクにコミットされるように、おそらく書き込みとそれに続くフラッシュで何かを行うことができますが、これはフラッシュ中にプログラムをブロックします (また、この方法も信頼できません)。
  3. SMART などを使用して確認できる可能性がありますが、プログラムがハード ドライブから実行されていない可能性があることを覚えておいてください。SSD 上にある可能性、ネットワーク経由である可能性、RAM ディスクから実行されている可能性があります。

一般に、このような仮定をプログラムに含めるべきではありません。ディスクに触れる必要があり、ハード ドライブの電源が切れて時間がかかることが懸念される場合は、ハード ドライブのスリープを無効にするようユーザーに依頼してください。サーバー アプリケーションの場合、ドライブは常に実行されているため、これはおそらく問題にはなりません。SSDなどの場合、これらのドライブはアイドル状態から「スピンアップ」しないため、とにかく問題はありません.

于 2013-01-15T06:47:24.930 に答える