我有一个调试系统,我希望使用带有代码编号的函数,使用printf
在终端中打印。目前功能如下:
#define DEBUG(args...) general_printf(CMT_Common_Debug,args)
void general_printf(int messageCat, __const char *__restrict __format, ...)
{
printf("[%d]",messageCat);
printf(__format);
}
那么这个函数用什么来调用printf
前面的格式为[code_here]
的标识符代码。我面临的问题是,可能会发生某些事情,这会导致两次调用printf
之间的时间过去,导致终端中的消息中断;这意味着我必须打电话给printf
。不幸的是,加入这两个部分并不起作用:
printf("[%d]%s",messageCat,__format);
未填充%d,%u等。而且我无法找到如何将...
传递给printf
。
我咨询了另一位开发人员,他建议以某种方式将数据复制到缓冲区,合并这两部分然后打印,但这需要太多的处理;我想要一种更直接的方法。
那我怎么能这样做?
修改
与可能的重复案例相比,我的问题并不完全独特,但即使是该线程也没有给出我需要的解决方案,即如何将int messageCat
添加到同一个printf
或类似函数的调用。
答案 0 :(得分:0)
在搜索了所提到的函数和所提供的假设重复问题的链接之后,我设法找到了一种方法来做我想要的事情:
Objective-C
唯一的问题是它并不简单:它需要为一项本来应该很简单的任务做很多处理,因为它只是在{{{{{{{{{{ 1}}。在这种情况下,等待更好的解决方案。