2017-01-28 10 views
1

ハードドライブが有効かどうかを確認し、後でプログラムで使用する変数またはブール値を設定します。私はhdparmをインストールして、一定時間後にドライブをスピンダウンさせるために適切に動作しています。ドライブは/ dev/sda2にあり、ブート時に自動マウントされます。プログラム内でhddが有効かどうかを確認してください

私は約popen()を読んでいますが、cの出力を解析するのにはまだまずです。これを行う別の方法がありますか?

スタンバイモードになっているかどうかを確認することもできます。

+0

「アクティブ」とは、「省電力モードではない」という意味ですか?それとも、「読み書き要求に対応していますか? –

+0

サービスのリクエストを意味します。代わりに、私はそれが役立つ場合は、スタンバイモードでは、ブール値を設定することができます。 –

+0

@エタンモリス1つを選んでください - 答えは大きく異なります。また、なぜあなたは知る必要がありますか? – duskwuff

答えて

1

"/ sys/block/sda2/stat"から読み込むことができます。ドキュメントについては、https://www.kernel.org/doc/Documentation/block/stat.txtを参照してください。フィールド3(セクタを読み取る)とフィールド7(セクタを書き込み)を解析するためのfopen

  • 使用sscanf関数と

    1. オープン "/ SYS /ブロック/ sda2は/ STAT": あなたのプログラムは次のように動作するはずです。
    2. 繰り返し、手順1〜3を
    3. 数秒間
    4. 待ちファイルをfcloseは。別の番号を取得した場合、その時間中にディスクがアクティブになっています。
  • +0

    私はsda2を持っていませんが、sda/statをチェックしてドライブをスピンアップした後に違いが見えます。読み取り値はすべて上がっていますが、ドライブがスタンバイ状態に戻った後は変更されません。 –

    関連する問題