Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中使用gio/glib列出dbus服务下的所有对象路径?_C_Glib - Fatal编程技术网

如何在C语言中使用gio/glib列出dbus服务下的所有对象路径?

如何在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;

这是本文的后续内容,但我希望使用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;
  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,或者它是否存在?