Bluetooth 如何修复GATTTools GLib警告**:无效的文件描述符

Bluetooth 如何修复GATTTools GLib警告**:无效的文件描述符,bluetooth,bluez,gatt,Bluetooth,Bluez,Gatt,请参阅下面的链接,了解到目前为止我找到的关于此警告的最详细解释: 简而言之:这是由于对g_io_channel_unref的冗余调用,g_io_channel_在gatttool代码中关闭 在btio/btio.c内部创建的Glib IO套接字:create_IO具有内部IO通道参考计数器,当它达到零时,对象将自动处理。这就是从attrib/interactive.c:disconnect\u io开始的调用链中真正发生的事情。但后来有两个调用:g_io_channel_unref、g_io_

请参阅下面的链接,了解到目前为止我找到的关于此警告的最详细解释:

简而言之:这是由于对g_io_channel_unref的冗余调用,g_io_channel_在gatttool代码中关闭

在btio/btio.c内部创建的Glib IO套接字:create_IO具有内部IO通道参考计数器,当它达到零时,对象将自动处理。这就是从attrib/interactive.c:disconnect\u io开始的调用链中真正发生的事情。但后来有两个调用:g_io_channel_unref、g_io_channel_shutdown,它们都是冗余的,因为之前套接字已经关闭


此链接包含作者附加的补丁,用于删除最后两个冗余调用。因此,您可以自己重新编译gatttool并消除警告,但正如您所看到的,这不是一个关键警告,不应引起任何重大问题。

鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久脱机。您好@Gennadii Kurabko,我阅读了您的帖子和您发布的链接。然而。我没有看到作者附加的补丁。你能告诉我在哪里能找到它吗?Thanks@S7_0,当您向下滚动至底部时,您将发现作者提供的差异:
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.