c - 如何在 C 中不使用 __FILE__ 只打印文件名

标签 c linux

<分区>

我想打印在我的项目中使用的文件名。 但是,如果我使用 __FILE__,它会打印整个路径以及文件名,这在我的例子中很长并且会扰乱日志缩进。

任何人都可以帮助我如何在我的项目中使用通用参数只打印文件名。

最佳答案

在您的 C 代码中,您可以使用表达式 basename(__FILE__) 代替 __FILE__;但是,这样做的缺点是每次出现时都会调用 basename

或者,使用如下命令编译path/foo.c

gcc -Wall -c -g -DBASE_FILE=\"foo\" path/foo.c

(你可以有一个通用的 make 规则:使用 GNU make 使用 functionsbasenameautomatic variables )

然后在您的代码中使用 BASE_FILE 而不是 __FILE__

有了 GCC,你可以使用 __BASE_FILE__而不是 __FILE__

关于c - 如何在 C 中不使用 __FILE__ 只打印文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279941/

相关文章:

linux - CentOS 7 上的固件同步安装

c++ - 使用 g++,如何弃用虚拟类成员函数

c - printf 语句在下面的代码中是如何工作的?

c - C中的自由指针是什么?

检查矩阵的第一行和最后一行是否只有负值

python - 在 Linux 服务器中使用 qsub 时如何导入 argparse?

linux - Linux 中进程的线程调度

c - 有什么方法可以找到关键部分中函数所花费的时间(在禁用和启用中断之间)

c - Postfix++ 运算符在 While 条件下未按预期运行

linux - CentOS强制修改密码问题