gpt4 book ai didi

c - 我们为什么以及如何重定向调试语句?

转载 作者:IT王子 更新时间:2023-10-29 01:06:04 26 4
gpt4 key购买 nike

我想知道为什么像这里那样将调试语句重定向到 stderr:

#ifdef DEBUG_TEST
#define DEBUG_TEST 1
#else
#define DEBUG_TEST 0
#endif

#define DEBUG_PRINT(fmt, ...) \
do { if (DEBUG_TEST) fprintf(stderr, fmt, ##__VA_ARGS__); } while (0)

另外:我们如何将这些调试语句重定向到一个单独的日志文件,并在该文件上加上时间戳?我想在我的代码中使用宏来执行此操作。

平台:Linux,gcc编译器

最佳答案

使用 stderr 而不是 stdout 的优势在于,如果您将输出重定向到文件或将其流式传输(使用管道)到另一个进程,则调试消息不会妨碍。

如果你想在 Unix 上将 stderr 重定向到一个文件,你可以像这样运行你的程序:

./program 2>logfile

关于c - 我们为什么以及如何重定向调试语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8676816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com