C/C++ 获取不带路径的文件名的方法
2016-01-21 20:29
393 查看
在源码中有时候需要用到文件名,比如log的时候一般都会把文件名打印出来,__FILE__这个宏就是干这事用的。但是这个宏会把路径也带进来,而有时候我们只需要一个简单的文件名而已。
实现方法,通过shell或者Makefile自带的函数,去掉文件的路径,用宏的方式传递进去即可。
Makefile:
如果是用的blade这个构建工具则可以在BLADE_ROOT的文件的cppflags里面加这么一句
然后头文件加这么一段:
这样__BFILE__就是不包含路径的文件名了。
实现方法,通过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__就是不包含路径的文件名了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- CMD命令行将当前磁盘所有文件名写入到文本文件的方法
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C#编程实现获取文件夹中所有文件的文件名
- C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例