sysfsの数字は10進数または16進数で表されますか?

sysfsの数字は10進数または16進数で表されますか?

特にsysfsのファイルを見ています。/sys/bus/usb/devices

ファイルには、「00」のように2文字で表される小さな数字が含まれています。

私のすべての例には「09」以下の数字が含まれています。

私はこれを解釈するためのスクリプトを書いていますが、次の値で「0A」または「10」を期待する必要があるかどうかはわかりません(つまり、10進数、16進数ですか?)

私はこれがカーネルkobjectのビューであることを見ましたが、シリアライゼーションソースが見つかりませんでした。

この数字(bInterfaceNumberなど)が10進数、16進数、またはケースごとに異なるかどうかを教えてください。違いがある場合は、ソースコードのどこでsysfsの特定のファイルを確認できますか?

関連している場合、私のコンピュータはほとんど20.04と22.04の混合Ubuntuです。比較対象としてスクリプトを見てみましたが、バージョンusb-devices間に変更があり、スクリプトが何をしたいのか自信が落ちました。

ベストアンサー1

これは、kobject フィールドと対応する直列化機能によって異なります。検索は常に簡単ではありませんが、USBの場合は便利です。グループ化bInterfaceNumberはいそう宣言した:

usb_intf_attr(bInterfaceNumber, "%02x\n");

2番目のパラメータはフォーマット文字列なので、16進値を表示します。下の行は、bAlternateSetting示されている10進値を示しています。

すべてのsysfsエントリは次のようになります。録音された、次bInterfaceNumberのように説明します。

What:       /sys/bus/usb/devices/usbX/bInterfaceNumber
Description:
        Interface number, in hexadecimal.

おすすめ記事