如何自定义C printf函数,使其自动添加消息日志



我正在与不同类型的用户开发一个C项目。对于日志记录和调试,我非常感谢一个定制的printf函数,它只是在消息的开头添加了一个标记用户类型的标签。是否可以不从头开始重写printf函数?

这里有一个粗略的例子。my_print()的调用方式与printf()相同,但它在处理参数之前会产生一些输出。当然,额外的输出是什么以及它来自哪里,这需要在特定的应用程序中确定。

重要的事实是,我们可以在不重新实现printf()的情况下提供类似printf的函数。

#include <stdarg.h>
#include <stdio.h>
void my_printf (const char *fmt,...)
{
va_list ap;
va_start (ap, fmt);
printf ("MY INFO... ");
vprintf (fmt, ap);
va_end (ap); 
}

int main (int argc, char **argv)
{
my_printf ("The answer is %dn", 42);
return 0;
}