ファイルは不規則に見えますが、一般的にリストされています。

ファイルは不規則に見えますが、一般的にリストされています。

私が理解したところ、Linux / UNIXでシステム情報を取得するファイルは通常のファイルではなくデバイスファイルですが、不規則に見えるファイル(lsによって決まる動作やサイズ、および他のC関数のため)を見つけました。ただし、そのまま表示されます(shスクリプトでlsと-fでテストするとき)。

Raspberry Piにファイルがあるパス/sys/class/thermal/thermal_zone0/temp、lsの結果は次のとおりです。
-r--r--r-- 1 root root 4096 janv. 18 13:55 /sys/class/thermal/thermal_zone0/temp

デバイスファイルの場合cまたは存在する必要があります。b

問題は、検出されたファイルサイズが4096バイトですが、実際のファイルサイズははるかに小さいことです。

だからいくつかの質問があります。なぜこのファイルは特別なファイルとしてリストされないのですか?これらのファイルを効率的に検出するには、任意のC関数を使用する必要がありますが、「制限されたサイズ」ファイルの場合、そのコンテンツのサイズを測定する方法は?

ありがとう

答え1

これらのファイルは実際には実際のファイルシステムではなくカーネルへのインターフェースに似ているため、およびこれらのファイルのみを/procほとんど見ることができます。/sys私は、デバイスがメジャー/マイナー番号で識別され、それを使用せずにprocそのsysfs中にある仮想ファイルを識別する別の手段を使用するため、デバイスノードとして表示されないと仮定します。

/procまたは、ファイルにアクセスするために使用されるプログラムがほとんどないため、これを識別するのは通常問題ではありません/sys。これらの多くはデータが動的に生成されるため、すべてを読み取る以外にサイズを測定する方法がない可能性があります。たとえば、私がテストしたファイルの場合、最後まで検索は役に立ちませんでしたが、そのサイズを広告したファイルの場合、コンテンツの実際のサイズに関係なく、検索は場所4096に移動しました。

関連情報