向log文件打印date

向一个log文件打印行号和date在项目中经常用到,所以本篇博客将程序贴在此处,以后如果在项目中应用到,可以直接拿来应用。

 

例程:进程向log文件每隔1秒写入一行序号和date,如果进程中断,下次再启动该进程时,能够接续上次的序号。

 

程序如下:

/*************************************************************************

 @Author: wanghao

 @Created Time : Wed 16 May 2018 04:10:25 AMPDT

 @File Name: test3.c

 @Description:

 ************************************************************************/

#include<stdio.h>

#include<time.h>

#include<errno.h>

#include<string.h>

#include<unistd.h>

 

#define N 128

 

int main(int argc,char **argv)

{

       FILE *fp;

       int   line=0;

       char buf[N];

      

       if((fp= fopen("/home/wanghao/log","a+")) == NULL) {

              fprintf(stderr,"fopen failed:%s\n", strerror(errno));

              return-1;

       }

      

       while(fgets(buf, N, fp)!= NULL) {

              line++;

       }

 

       while(1)

       {

              time_t t;

              /*Getthe  time as  the  number of seconds since the Epoch,

               1970-01-01 00:00:00 +0000 (UTC).*/

              time(&t);

              struct tm *t1;

              /*Getthe current local time*/

              t1=localtime(&t);

             

              if(sprintf(buf, "%-2d %d/%d/%d %d:%d:%d\n",

                     ++line,

                     t1->tm_year+1900,

                     t1->tm_mon+1,

                     t1->tm_mday,

                     t1->tm_hour,

                     t1->tm_min,

                     t1->tm_sec)< 0)

              {

                     perror("fprintferror");

                     break;

              }

 

              printf("%s",buf);

              fputs(buf,fp);

             

              fflush(fp);

              sleep(1);

       }

 

       fclose(fp);

      

       return0;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值