【问题标题】:How to fix GATTTools GLib-WARNING **: Invalid file descriptor如何修复 GATTTools GLib-WARNING **:文件描述符无效
【发布时间】:2016-08-25 13:44:23
【问题描述】:
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.

【问题讨论】:

    标签: bluetooth bluez gatt


    【解决方案1】:

    请参阅下面的链接,了解迄今为止我设法找到的此警告的最详细说明:

    http://www.spinics.net/lists/linux-bluetooth/msg67617.html

    简而言之:这是由于 gatttool 代码中对 g_io_channel_unref、g_io_channel_shutdown 的冗余调用所致。

    在 btio/btio.c:create_io 内部创建的 Glib IO 套接字具有内部 IO 通道引用计数器,当它达到零时,对象将被自动释放。这就是从 attrib/interactive.c:disconnect_io 开始的调用链中确实发生的事情。但后来有两个调用:g_io_channel_unref、g_io_channel_shutdown 是多余的,因为之前套接字已经关闭。

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

    【讨论】:

    • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。
    • 您好@Gennadii Kurabko,我阅读了您的帖子和您发布的链接。然而。我没有看到作者附加的补丁。你能告诉我在哪里可以找到它吗?谢谢
    • @S7_0,向下滚动到底部会发现作者提供的diff:
    猜你喜欢
    • 2021-09-09
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 2017-03-10
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多