BlueZ에서 제공하는 C 언어 파일 설명자에서 작동

BlueZ에서 제공하는 C 언어 파일 설명자에서 작동

org.bluez.Profile1에서 작업하려고 합니다 BlueZ 5.44. DBus 메소드를 통해 새 장치에 연결할 때 NewConnection사용할 수 있는 파일 설명자를 얻습니다. 나는 이 파일 설명자가 어떤 상태에 있는지, 그리고 파일 설명자를 읽고 쓰기 위해 무엇을 해야 하는지 매우 혼란스럽습니다. 단순히 전화를 걸면 read/ write내가 기대한 대로 작동하지 않습니다.

파일에테스트/테스트 프로필, 다음 Python 코드 줄이 표시됩니다.

self.fd = fd.take()

take나는 이 방법에 해당하는 Linux C를 찾으려고 노력하고 있습니다 . 읽기/쓰기에 fd를 사용할 수 있도록 C 코드에서 이 fd를 구성하는 방법에 대한 제안은 매우 도움이 될 것입니다!

감사해요

답변1

내 문제는 결국 gdbus-codegen내가 사용하고 있던 도구에 있었습니다. 도구를 사용할 때 각 fd 매개변수는 실제로 인덱스 GUnixFDList(객체의 문서) 입니다.여기). GUnixFDList메서드를 통과 하려면 NewConnectionxml에서 메서드에 주석을 달아야 했습니다 org.gtk.GDBus.C.UnixFD.여기.

관련 정보