#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
#include<string.h> #define my_printf(fmt,...) debug_printf(__FILE__,__FUNCTION__,__LINE__,fmt,##__VA_ARGS__)
const char *logPath = "./log.txt"; void debug_printf(const char *file,const char *fun,const int line,const char *fmt, ...)
{
va_list arg_ptr;
va_list arg_tmp;
va_start(arg_ptr,fmt);
va_copy(arg_tmp,arg_ptr); printf("[%s %s %d] ",file,fun,line);
vprintf(fmt,arg_ptr); FILE *pf = NULL;
pf = fopen(logPath,"a");
if(NULL != pf)
{
fprintf(pf,"[%s %s %d] ",file,fun,line);
vfprintf(pf,fmt,arg_tmp);
fclose(pf);
pf = NULL;
}
va_end(arg_ptr);
} int main()
{
int i = ;
my_printf("this is my %d test",i);
return ;
}

运行结果:

Linux可变参数打印日志(二)的更多相关文章

  1. _vsnprintf在可变参数打印中的用法

    _vsnprintf,C语言库函数之一,属于可变参数.用于向字符串中打印数据.数据格式用户自定义. 函数简介 编辑 头文件: #include <stdarg.h> 函数声明: int _ ...

  2. 利用可变参数打印log2

    #pragma once #include <string> #include "StdAfx.h" #include <Windows.h> using ...

  3. 利用可变参数打印log

    // ConsoleApplication1.cpp: 定义控制台应用程序的入口点. // #pragma once #include <string> #include <Wind ...

  4. Linux 打印可变参数日志

    实现了传输进去的字符串所在的文档,函数和行数显示功能. 实现了将传入的可变参数打印到日志功能. #include<stdio.h> #include<stdarg.h> #in ...

  5. C++.可变参数_ZC测试

    ZC:环境: Win7 x64(旗舰版),Microsoft Visual Studio 2010(版本 10.0.30319.1 RTMRel, Microsoft .NET Framework(版 ...

  6. 五分钟学Java:可变参数究竟是怎么一回事?

    在逛 programcreek 的时候,我发现了一些专注基础但不容忽视的主题.比如说:Java 的可变参数究竟是怎么一回事?像这类灵魂拷问的主题,非常值得深入地研究一下. 我以前很不重视基础,觉得不就 ...

  7. java基础40 可变参数、自动装箱和自动拆箱

    一.可变参数 可变参数是jdk1.5新特性 1.1.可变参数的格式 数据类型...变量名 // 数据类型...变量名public static void sum(int...arr){ } 1.2.可 ...

  8. logback--日志在windows上可以打印,在linux上不能打印的问题

    解决问题方法: 本人遇到的问题,属于jar包冲突问题.本人加入的jar包如下: slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar logback-core-1.0 ...

  9. 一只简单的网络爬虫(基于linux C/C++)————读取命令行参数及日志宏设计

    linux上面的程序刚开始启动的时候一般会从命令行获取某些参数,比如以守护进程运行啊什么的,典型的例子就是linux下的man,如下图所示 实现该功能可以使用getopt函数实现,该函数在头文件uni ...

随机推荐

  1. kettle处理未发现hadoop插件问题

    背景:将测试环境的中kettle转换传输到生产环境上出现hadoop插件无法获取的错误 Hadoop File Output 2.0 - ERROR (version 7.1.0.0-12, buil ...

  2. python自带queue

    from queue import Queue # 线程安全队列 def thread_queue(): q = Queue(3) # 这个队列最多进多少东西 q.put('a') q.put('b' ...

  3. 并不对劲的bzoj1972:loj2885:p2482[SDOI2010]猪国杀

    题目大意 只能放链接了. 题目中有一点没说:并不是保证牌够用,而是在牌不够用时反复抽最后一张牌. 题解 发现玩家的数量比较少,所以可以不太在意时间够不够用. 考虑三件事:1.基本操作,如摸牌.出牌.玩 ...

  4. 23-Perl 面向对象

    1.Perl 面向对象Perl 中有两种不同地面向对象编程的实现:一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用.在这个匿名哈希表中,存储来所有的实例属性.二是基于数组的方式 ...

  5. 11-Perl 运算符

    1.Perl 运算符运算符是一种告诉编译器执行特定的数学或逻辑操作的符号,如: 3+2=5.Perl 语言内置了丰富的运算符,我们来看下常用的几种: 算术运算符,比较运算符,逻辑运算符,赋值运算符,位 ...

  6. [C#]使用BackgroudWorker刷新UI延迟的解决方法

    今天使用BackgroundWorker刷新UI发生延时现象,找了好久才发现AutoResetEvent可以解决,代码如下 private void BgWorker_ProgressChanged( ...

  7. Base64加密后有换行回车的解决办法

    据RFC 822规定,每76个字符,还需要加上一个回车换行 有时就因为这些换行弄得出了问题,解决办法如下,替换所有换行和回车 String bTemp = Base64.encodeBase64Str ...

  8. C# 使用Quartz.Net

    //首先在Nuget上下载 Quartz包 但是由于我睿智Nuget 怎么也没法用 于是找到了这个 解决方法: 1.点击右侧的设置按钮, 2.弹出窗中左侧树形结构选择“程序包源”,再点击右上方的添加按 ...

  9. 【Day2】1.循环结构

     视频地址(全部) https://edu.csdn.net/course/detail/26057 课件地址(全部) https://download.csdn.net/download/gentl ...

  10. 快速导入Excel数据到mysql

    首先利用mysql文件,导出csv文件, 然后,直接修改csv文件,然后导入csv文件