
ネットワークインターフェイスに関する情報をポーリングするスクリプトを作成しています。このために/sysfs
。
インタフェースの可能なすべての状態を明確にしたいと思うまではすべてが順調に進みました (ところでそれが何ですか? 現在としてはup
、down
そして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。