sysfsから情報を取得する

sysfsから情報を取得する

ネットワークインターフェイスに関する情報をポーリングするスクリプトを作成しています。このために/sysfs

インタフェースの可能なすべての状態を明確にしたいと思うまではすべてが順調に進みました (ところでそれが何ですか? 現在としてはupdownそしてunknown) だけ知っています。あちこち探しより行って/usr/src/linux/Documentation/sysfs-rules.txtこんなことを発見しました。

/sys/class/net/eth0/device にアクセスするのはアプリケーションのバグです。

理由がありますか?情報の取得に問題がある場合は、誰かを説明できますか/sysfs

すべてのインターフェイスを繰り返すわけではありませんが、/sysfsすべてのネットワークインターフェイスを取得しますgetifaddrs(3)。 ifaceの状態を取得する別の方法がありますか?ありがとうございます。

ベストアンサー1

これはdevice使用しないでくださいクラスディレクトリへのリンクです。アイデアは、これが/sys/class/net/eth0下のどこかにシンボリックリンクであり、/sys/devicesそのリンクは(グランド - )*親ディレクトリdeviceにのみリンクされていることです。必要に応じて親ディレクトリに戻る必要があります。device

ファイルにアクセスするだけ/sys/class/net/eth0/です。

の実行状態を参照すると、/sys/class/net/eth0/operstateより多くの状態があります。名前は以下で定義されます。net/core/net-sysfs.cそして一定include/uapi/linux/if.h。彼らは-から来たRFC 2863

おすすめ記事