g_bus_get_sync返回NULL但dbus_g_bus_get_private有效

g_bus_get_sync返回NULL但dbus_g_bus_get_private有效,第1张

概述我正在研究使用不推荐使用的库dbus-glib的遗留嵌入代码. 在遗留代码中,此代码片段运行良好: GError* error = NULL;DBusGConnection *systemBus = dbus_g_bus_get_private(DBUS_BUS_SYSTEM, NULL, &error); 现在,我尝试使用GDBus等效的系统总线: GError* error = NULL; 我正在研究使用不推荐使用的库dbus-glib的遗留嵌入代码.

在遗留代码中,此代码片段运行良好:

GError* error = NulL;DBusGConnection *systemBus = dbus_g_bus_get_private(DBUS_BUS_SYstem,NulL,&error);

现在,我尝试使用GDBus等效的系统总线:

GError* error = NulL;GDBusConnection *systemBus = g_bus_get_sync(G_BUS_TYPE_SYstem,&error);

这个失败,并且error->消息返回无法连接:没有这样的文件或目录.

有什么不同?

顺便说一句,同一个调用在会话总线上工作:

GError* error = NulL;DBusConnection *sessionBus = g_bus_get_sync(G_BUS_TYPE_SESSION,&error);
解决方法 你是否以root权限运行它?根据我的经验,dbus访问系统总线受到限制.会话总线由用户拥有,因此访问永远不会出现问题.

根据这个documentation,当你想建立私人连接时,你应该使用dbus-address-get-for-bus-sync和g-dbus-connection-new-for-address.

总结

以上是内存溢出为你收集整理的g_bus_get_sync返回NULL但dbus_g_bus_get_private有效全部内容,希望文章能够帮你解决g_bus_get_sync返回NULL但dbus_g_bus_get_private有效所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存