Linuxでproc
ファイルシステムはどのくらいの頻度で更新されますか? 20ミリ秒(タイムクォンタム)ですか?
Procファイルシステムから読み取った情報は、メディアにも(RAMにも)格納されないため、更新するものはありません。
Procファイルシステムの目的は、読み書きされるデータが読み取られなくても、ユーザー空間プログラムがシンプルで使い慣れたファイルシステムセマンティクス(open
、close
、read
、write
、lseek
)を使用してカーネルデータを取得または設定できるようにすることです任意のメディアに常駐します。この設計上の決定は、事前に指定できない形式のデータを取得および設定する場合(ASN1でエンコードされたOIDなど、正常に機能するものなど)を実装するよりも優れている(人間が判読可能で簡単にスクリプト化できる)と見なされました。
Procファイルシステムから読み取るときに表示されるデータは、ファイルの先頭から読み取るときにオンザフライで生成されます。つまり、読み取りを実行すると、読み取っているファイルに固有のカーネルコールバック関数によってデータが生成されます。 lseek
をファイルの先頭に行って再度読み取ると、コールバックが再度呼び出され、データが再度生成されます。同様に、procファイルシステムの書き込み可能なファイルに書き込むと、入力を解析してカーネル変数を設定するコールバック関数が呼び出されます。そのままの形式の入力データは保存されません。
上記は、Hauke Lagingが何を非常に簡潔に述べているかを示す、もう少し冗長な方法です。彼の答えを受け入れることをお勧めします。
アクセスのたびに更新されます。その瞬間のカーネルの状態が表示されます。そのため、「ファイル」に表示されるサイズは実際のサイズではありません。実際のサイズは変わる可能性があり、ファイルにアクセスした瞬間に決定されます。
何日も更新されない可能性があります。あなたがそれを見ないなら。 :-)