末尾の /sys/devices/platform/applesmc.768/light が機能しません。

末尾の /sys/devices/platform/applesmc.768/light が機能しません。

昔々私はこの殻の呪文を唱えました。

# tail -f /sys/devices/platform/applesmc.768/light

それが生じ、

(0,0)

私が読んだファイルは、Macbook Proの光センサー抽象化ファイルです。

残念ながら、センサー(カメラと同じ位置)に光を当てても値は更新されません!

手動で読み込むと、変更内容が表示されます。

# cat /sys/devices/platform/applesmc.768/light
(50,0)

課題はなぜ? ! これは、値に対してポーリングを行い、値が変更された場合に通知を受け取りたいからです。使用Python動作しません。

答え1

代わりに、catの周りにwatchまたはwhileループを使用してください。

watch cat /sys/devices/platform/applesmc.768/light

while sleep 0.5; do cat /sys/devices/platform/applesmc.768/light; done

ファイルに新しい値が追加されずに置き換えられるため、値を再読み込みするにはファイルを再読み込みする必要があります。したがって、tailはファイルにさらに多くの行が追加されるのを待っているため、機能しません。

Pythonでは開いたファイルの先頭にジャンプすることができますが、それを行うと古い値を再度読み取ることができます。ただし、ファイルを閉じて再度開くと、必要に応じて機能します。

関連情報