如何通过dbus调用varargs函数?

时间:2011-08-05 01:43:11

标签: c dbus

如何通过dbus调用varargs函数,比如printf?

服务器是用C语言编写的,客户端是用Python编写的。

我的问题是如何编写XML规范文件?以及如何编写我的GObject?

提前致谢。

[我使用DBus-GLib。]

1 个答案:

答案 0 :(得分:0)

无法使用不同数量和类型的参数以编程方式调用可变参数函数。您可以使用相应的“v”函数(vprintf等)但是无法使va_list从外部代码传递给它们并将其传递给DBus。

无论如何,你真的需要重新考虑你的设计。使用不受程序100%控制的格式字符串调用printf是不安全的。传递客户端提供的格式字符串是灾难的公式,因为如果格式字符串与参数不匹配,printf将调用未定义的行为。在几乎所有的现实世界中,这意味着特权提升缺陷