Linux下获取代码文件名、代码所在行数及日期时间的C程序实现
2015-05-14 09:11
465 查看
一、概述
在实际的软件开发项目中,为了方便排查程序问题,要求在日志文件中输出日志信息所在的程序文件名及日志代码所在的行数。此外,某些软件还会要求将程序启动时的日期时间输出到日志文件中,方便跟踪软件运行状况。
本文介绍了Linux下获取代码文件名、代码行数及日期时间的C代码实现。
二、几个标准预定义宏简介
在C语言中,使用几个标准预定义宏,便可轻松实现获取代码文件名、代码行数及日期时间的功能。
这几个宏的定义如下(注意:前后都是两条连续的下划线):
三、C代码实现
四、文件编译及运行结果
在Linux下执行“gcc -g -o FileNameAndLine FileNameAndLine.c”命令,生成“FileNameAndLine”。然后再执行“FileNameAndLine”命令,程序运行结果如下:
本人微信公众号:zhouzxi,请扫描以下二维码:
在实际的软件开发项目中,为了方便排查程序问题,要求在日志文件中输出日志信息所在的程序文件名及日志代码所在的行数。此外,某些软件还会要求将程序启动时的日期时间输出到日志文件中,方便跟踪软件运行状况。
本文介绍了Linux下获取代码文件名、代码行数及日期时间的C代码实现。
二、几个标准预定义宏简介
在C语言中,使用几个标准预定义宏,便可轻松实现获取代码文件名、代码行数及日期时间的功能。
这几个宏的定义如下(注意:前后都是两条连续的下划线):
__FILE__:在源文件中插入当前源文件名。 __FUNCTION__:在源文件中插入当前源代码所在函数名。 __LINE__:在源代码中插入当前源代码行号。 __DATE__:在源文件中插入当前的编译日期。 __TIME__:在源文件中插入当前编译时间。
三、C代码实现
/********************************************************************** * 版权所有 (C)2015, Zhou Zhaoxiong。 * * 文件名称:FileNameAndLine.c * 文件标识:无 * 内容摘要:打印输出信息所在的代码文件名、所在的行数及日期时间 * 其它说明:无 * 当前版本:V1.0 * 作 者:Zhou Zhaoxiong * 完成日期:20150511 * **********************************************************************/ #include <stdio.h> // 重定义数据类型 typedef signed int INT32; typedef unsigned char UINT8; /********************************************************************** * 功能描述:主函数 * 输入参数:无 * 输出参数:无 * 返 回 值:无 * 其它说明:无 * 修改日期 版本号 修改人 修改内容 * ------------------------------------------------------------------- * 20150511 V1.0 Zhou Zhaoxiong 创建 ***********************************************************************/ INT32 main() { UINT8 szContentBuf[256] = {0}; snprintf(szContentBuf, sizeof(szContentBuf)-1, "This log is in [%s], [%s], and lineno is [%d], currenttime is [%s %s].\n", __FILE__, __FUNCTION__, __LINE__, __DATE__, __TIME__); printf(szContentBuf); // 将消息输出 return 0; }
四、文件编译及运行结果
在Linux下执行“gcc -g -o FileNameAndLine FileNameAndLine.c”命令,生成“FileNameAndLine”。然后再执行“FileNameAndLine”命令,程序运行结果如下:
[zhou|/home/zhou/zhouzx/test] gcc -g -o FileNameAndLine FileNameAndLine.c [zhou|/home/zhou/zhouzx/test] FileNameAndLine This log is in [FileNameAndLine.c], [main], and lineno is [34], currenttime is [May 18 2015 10:35:55].
本人微信公众号:zhouzxi,请扫描以下二维码:
相关文章推荐
- Js 获取当前日期时间及其它操作实现代码
- Js 获取当前日期时间及其它操作实现代码
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- Linux下获取当前时间到1970年之前某年份的秒数的C代码实现
- Linux下时间范围判断的程序流程及其C代码实现
- Linux下按照时间和大小生成新文件的程序流程及其C代码实现
- go实用小技能(二)-获取当前执行程序的文件名和代码所在行号
- Linux 环境下C/C++获取系统时间 && 每隔500ms循环一次代码实现
- C程序实现在lcd 上全屏写 blue 色 及获取fb信息 ----》linux 应用层代码
- java获取当前时间和前一天日期(实现代码)
- Js 获取当前日期时间及其它操作实现代码
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- C语言程序获取或者打印当前语句所在的行号、当前源文件的文件名、程序编译的日期等信息(__LINE__、__FUNCTION__、__FILE__、__DATE__、__TIME__)
- js获取日期、时间、日期常用方法、时间计算并格式化和实现电子表
- 获取当前时间的前后台实现代码比较java和js
- c# 获取当前代码所在位置(文件名以及所在行)
- js获取某个时间戳所在日期的0点的时间戳
- Android日期和时间选择器实现代码
- Qt:在程序中获取源码被编译的日期和时间