gatttool -b 00:E0:4C:EF:9D:52 --interactive
[00:E0:4C:EF:9D:52][LE]> connect
Attempting to connect to 00:E0:4C:EF:9D:52
Connection successful
[00:E0:4C:EF:9D:52][LE]>
(gatttool:1446): GLib-WARNING **: Invalid file descriptor.
答案 0 :(得分:1)
请参阅下面的链接,了解我迄今为止找到的此警告的最详细说明:
http://www.spinics.net/lists/linux-bluetooth/msg67617.html
简而言之:这是由于在gatttool代码中对g_io_channel_unref,g_io_channel_shutdown进行了多次调用。
在btio / btio.c中创建的Glib IO套接字:create_io具有内部IO通道引用计数器,当它达到零时,对象将自动处理。这就是从attrib / interactive.c开始的调用链中发生的事情:disconnect_io。但后来有两个调用:g_io_channel_unref,g_io_channel_shutdown是多余的,因为套接字之前已经关闭。
此链接包含作者附加的修补程序,用于删除最后两个冗余调用。因此,您可以自己重新编译gatttool并删除警告,但是您可以看到它不是一个关键的,不应该导致任何重大问题。