最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
vsnprintf日志中打印程序名和行号实例
时间:2022-06-25 04:42:35 编辑:袖梨 来源:一聚教程网
在Linux C/C++程序中打印日志时,可能会由于需要打印未知个数的变量参数,那么vsnprintf函数就排上用场了。这里使用一个简单的C程序例子,演示在打印源程序文件名和该打印函数所在的行号的同时,使用vsnprintf函数打印个数未知的参数变量。
1 完整程序
代码比较简单,如果需要把内容打印在日志文件中的话,还需要调用文件处理函数。为了便于理解,这里直接把内容输出到控制台上了。需要说明的三个地方:
静态全局变量 c_FileName 和 i_FileLineNum 分别用于存储源程序文件名和打印函数所在的行号;
自定义标识符 PRINT 先调用源程序文件名和行号的赋值函数 Get_File_Line ,然后调用个数未知的参数的处理函数 F_vsnprintf;
类似于sprintf和snprintf这两个函数,相比vsprintf函数,vsnprintf加了最大字节( MAXBYTES )的限制,防止内存溢出。
具体代码如下:
| 代码如下 | 复制代码 |
|
#include #define FILENAME_LEN 100 static char c_FileName[FILENAME_LEN]; //Self-define a function which can print the name and line-number of the source file calling it. /** /** strcat( buf, "n" ); fputs( buf, stderr ); int main( int argc, char **argv ) | |
相关文章
- 俄罗斯搜索引擎官方主站直达-俄罗斯搜索引擎移动端免登入口 03-15
- 茄子漫画极速下载-茄子漫画v5.2.44免费畅读 03-15
- msn中文网首页快速入口-msn官网首页一键直达 03-15
- WhatsApp网页版登录-WhatsApp网页版在线体验 03-15
- ao3网页版快捷登录-AO3网页版一键登录入口 03-15
- 漫蛙manwa防走失官网asia-漫蛙manwa2防走失入口 03-15