如何通过dbus调用varargs函数,比如printf?
服务器是用C语言编写的,客户端是用Python编写的。
我的问题是如何编写XML规范文件?以及如何编写我的GObject?
提前致谢。
[我使用DBus-GLib。]
答案 0 :(得分:0)
无法使用不同数量和类型的参数以编程方式调用可变参数函数。您可以使用相应的“v”函数(vprintf
等)但是无法使va_list
从外部代码传递给它们并将其传递给DBus。
无论如何,你真的需要重新考虑你的设计。使用不受程序100%控制的格式字符串调用printf
是不安全的。传递客户端提供的格式字符串是灾难的公式,因为如果格式字符串与参数不匹配,printf
将调用未定义的行为。在几乎所有的现实世界中,这意味着特权提升缺陷!