您的位置:首页 > 编程语言 > C语言/C++

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

2016-01-21 20:29 393 查看
在源码中有时候需要用到文件名,比如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__就是不包含路径的文件名了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息