C/C++ 获取不带路径的文件名的方法

在源码中有时候需要用到文件名,比如log的时候一般都会把文件名打印出来,__FILE__这个宏就是干这事用的。但是这个宏会把路径也带进来,而有时候我们只需要一个简单的文件名而已。

实现方法,通过shell或者Makefile自带的函数,去掉文件的路径,用宏的方式传递进去即可。


Makefile:

%.o:%.c
	gcc -o $@ -c $<	-D__NOTDIR_FILE__=$(notdir $<)


如果是用的blade这个构建工具则可以在BLADE_ROOT的文件的cppflags里面加这么一句

'-D__NOTDIR_FILE__=`basename $SOURCE`',


然后头文件加这么一段:

#ifdef __NOTDIR_FILE__
#define M2STR(x) #x
#define M2STR_IMPL(x) M2STR(x)
#define __BFILE__ M2STR_IMPL(__NOTDIR_FILE__)
#else
#define __BFILE__ __FILE__
#endif

这样__BFILE__就是不包含路径的文件名了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值