ioctl
を使用して、ビーグルボーンブラックのIPアドレスをPythonで割り当てるプログラムを作成しました。 Linuxカーネルに実装IOCTL
方法は、すべてのパラメータが必要Beagleboard IP割り当て用のstruct.pack()引数の意味
ため
(参照How to assign IP address to interface in python?Getting IP address of the beagleboard using pythonと)は、特定の構造に渡されます。したがって、私は構造体としてこれらのパラメータをすべて構築し、次にIOCTL
に渡しました。
bin_ip = socket.inet_aton('192.168.0.1')
ifreq = struct.pack('16sH2s4s8s', 'eth0', socket.AF_INET, '\x00'*2, bin_ip, '\x00'*8)
はs
とH
編集と書かれた数字16 2 4 8の意味は何であるかs= char[] and H = unsigned short
としてhttps://docs.python.org/3.0/library/struct.htmlで最初の引数の部分的な意味を見つけた:「S」フォーマット文字の場合は、カウントがあると解釈されますバイトの長さは、例えば、16s
は、4-byte string
、2-byte string
、1 unsigned short
続い16-byte string
単一8-byte string
なぜ4 argum手段entは'\x00\x00'
で、最後の引数は'\x00\x00\x00\x00\x00\x00\x00\x00'
ですか?これは標準フォーマット/予期フォーマットですか?
ありがとうございます。私のコンセプトを明確にするのを助けました。 – daemon7osh