在linux下测试ok,代码如下:
/**************************************************************
*程序功能:新建一个time.txt文件,每隔1秒写入日期和时间,带行号
*时间:2019年11月19日
**************************************************************/
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
time_t ts=0;
int line=0;
struct tm* tm=NULL;
FILE* fp=NULL;
fp=fopen("./time.txt","w+");//打开(创建)time.txt文件
if(fp==NULL)//判断是否打开成功
{
perror("fopen");
return -1;
}
while(1)
{
ts = time(NULL);//获取1970年1月1日00:00:00到现在的时间秒数
if(ts==-1)
{
perror("get-time");
return -1;
}
// printf("%ld \n",ts);
tm = localtime(&ts);//把所获取的时间秒数格式化为日期和时间
if(tm==NULL)
{
perror("local-time");
return -1;
}
printf("%d年 %02d月 %02d日 %02d点 %02d分 %02d秒\n",
tm->tm_year+1900,tm->tm_mon,tm->tm_mday,
tm->tm_hour,tm->tm_min,tm->tm_sec);//再屏幕上标准输出所获取的日期和时间
line++;//标记行号,每次+1行
fprintf(fp,"LINE:%02d: %d年 %02d月 %02d日 %02d点 %02d分 %02d秒\n",line,
tm->tm_year+1900,tm->tm_mon,tm->tm_mday,
tm->tm_hour,tm->tm_min,tm->tm_sec);//在打开的time.txt文件中写入日期和时间
fflush(fp);//刷新缓冲区,让存在缓冲区的数据写入文件中
sleep(1);//眼石1秒
if(line>=20)//满20行后退出
{
break;
}
}
fclose(fp);//关闭打开的time.txt文件
return 0;
}
结束,快去试试吧!