如何在C语言中使用gio/glib列出dbus服务下的所有对象路径?
这是本文的后续内容,但我希望使用C语言,而不是python,使用glib-2.0/gio-2.0。我真的很难在C语言中找到这样一个例子,对于新手来说,文档很难阅读,因为它只是一个巨大的api列表。对于客户端DBus调用,可以在glib中使用对象。 如原始问题所示,使用org.freedesktop.DBus.Introspectable:如何在C语言中使用gio/glib列出dbus服务下的所有对象路径?,c,glib,C,Glib,这是本文的后续内容,但我希望使用C语言,而不是python,使用glib-2.0/gio-2.0。我真的很难在C语言中找到这样一个例子,对于新手来说,文档很难阅读,因为它只是一个巨大的api列表。对于客户端DBus调用,可以在glib中使用对象。 如原始问题所示,使用org.freedesktop.DBus.Introspectable: int main (int argc, char *argv[]) { GError *error; GDBusProxyFlags flags;
int
main (int argc, char *argv[])
{
GError *error;
GDBusProxyFlags flags;
GDBusProxy *proxy;
gpointer data;
loop = g_main_loop_new (NULL, FALSE);
error = NULL;
proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM
flags,
NULL, /* GDBusInterfaceInfo */
name, /* your service name */
object_path, /* your root object */
"org.freedesktop.DBus.Introspectable",
NULL, /* GCancellable */
&error);
g_dbus_proxy_call(proxy,
"Introspect", NULL,
G_DBUS_CALL_FLAGS_NONE,
-1, NULL,
(GAsyncReadyCallback) some_callback,
&data);
然后,您可以定义函数some_callback来处理包含对象的xml。虽然我很欣赏这个动作,但我已经问过了,而且之前已经关闭了,所以我想有一个很好的地方可以问这个问题:(这是因为你问的问题意味着搜索和推荐一个库,而不是解决代码中的错误。搜索谷歌,你应该很容易找到相关链接。然后尝试使用提供的工具并发布一个更精确的问题。我不是要推荐一个库?我指定了gio库,它非常简单。)GNOME标准,我想知道其中是否有API来执行特定任务。我在google上搜索了很多,作为一个有经验的linux用户,在这个问题的上下文中,我找不到有用的示例,也无法理解API文档。我的问题与代码相关,但在GNOME开发网站上发布了所有不起作用的API没有任何附加值来获取我正在寻找的API,或者它是否存在?