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

0 c printf

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

Kev*_*one 5

这是一个粗略的例子。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 %d\n", 42);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)