正の整数のみを含む文字列を にパイプすると/sys/class/backlight/intel_backlight/brightness
機能します。ただし、試した他の項目を含む文字列をパイプすると、エラーメッセージが表示されます。
$ sudo su -c "echo 10 >/sys/class/backlight/intel_backlight/brightness"
$ sudo su -c "echo -- -1 >/sys/class/backlight/intel_backlight/brightness"
bash: line 0: echo: write error: Invalid argument
$ sudo su -c "echo aa >/sys/class/backlight/intel_backlight/brightness"
bash: line 0: echo: write error: Invalid argument
$ sudo su -c "echo 10.2 >/sys/class/backlight/intel_backlight/brightness"
bash: line 0: echo: write error: Invalid argument
最初は、これが特別な種類のファイルであると思っていましたが、一般的なファイルのようです。
$ file /sys/class/backlight/intel_backlight/brightness
/sys/class/backlight/intel_backlight/brightness: ASCII text
どうなりますか?
ベストアンサー1
このファイルは特殊ファイルであり、カーネルは他の入力を拒否するため、このファイルには負以外の整数のみを書き込むことができます。特別なファイル形式を持つという意味では、特別なファイルではありませんが、特別なファイルシステムにあるため、特別なファイルです。 「一般」ファイルシステムにアクセスすると、カーネルはファイルの内容を解釈せずにディスクに保存します。でも訪れたら/proc
(プロセスファイルシステム)または/sys
(システムファイルシステム)、データはディスクに保存されず、アクセスはカスタムカーネルコードを呼び出します。この/sys/class/backlight/intel_backlight/brightness
カスタムコードなどのファイルには、0といくつかのハードウェアによる最大値の間の整数が必要ですwrite
。