我正在尝试使用systemd dbus修改一些代码。
方法调用如下所示:
res = sd_bus_call_method(bus,
SERVICE_NAME,
OBJECT_PATH,
INTERFACE,
"AddData",
&error, &m,
"ss",
data->key,
data->valyue);
现在我试图将其更改为:
res = sd_bus_call_method(bus,
SERVICE_NAME,
OBJECT_PATH,
INTERFACE,
"AddData",
&error, &m,
"(a(ss))",
/* WHAT DO I PASS HERE? */);
我无法找到示例或文档,而且代码对我来说并不是很清楚。
答案 0 :(得分:4)
事实证明这一切都非常简单。
我找不到sd_bus_call_method()
的文档,但sd_bus_message_append()
有一些很棒docs。
res = sd_bus_call_method(bus,
SERVICE_NAME,
OBJECT_PATH,
INTERFACE,
"AddData",
&error, &m,
"(a(ss))",
1, /* size of array */
"hello",
"world");