ioctl
을 사용하여 비글 본 검정색 IP 주소를 비단뱀에 할당하는 프로그램을 작성했습니다. 리눅스 커널 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)이 4 ~ 8의 의미가 무엇인지 s= char[] and H = unsigned short
로 https://docs.python.org/3.0/library/struct.html에서 첫 번째 인수의 부분적인 의미를 발견 다음의 '형식 문자의 경우, 카운트로 해석됩니다 바이트의 길이는, 예를 들면, 16s
는, 4-byte string
, 2-byte string
, 1 unsigned short
다음 16-byte string
단일 8-byte string
이유 넷째 argum 수단 ent는 '\x00\x00'
이고 마지막 인수는 '\x00\x00\x00\x00\x00\x00\x00\x00'
입니까? 이것이 표준 형식/예상 형식입니까?
감사합니다. 내 개념을 정리하는 데 많은 도움을주었습니다. – daemon7osh