将当前的时间写入到time.txt的文件中,如果ctrl+c退出之后,在再次执行支持断点续写
1.2022-03-25 19:10:20
2.2022-03-25 19:10:21
3.2022-03-25 19:10:22
//按下ctrl+c停止,再次执行程序
4.2022-03-25 20:00:00
5.2022-03-25 20:00:01
代码:
#include <head.h>
#include <time.h>
#include <unistd.h>
int main(int argc,const char * argv[])
{
//获取当前时间
struct tm *tim;
time_t ts;
char time_arr[50] = {0};
char temp[50] = {0};
while (1)
{
int line = 1;
if( (ts = time(NULL)) == -1)
PRINT_ERR("time error");
if((tim = localtime(&ts)) == NULL)
PRINT_ERR("localtime error");
//记录行号
FILE *fp;
if((fp = fopen("./time.txt","r+")) == NULL)
PRINT_ERR("fopen error");
while (fgets(temp,sizeof(tim),fp))
{
if(temp[strlen(temp) - 1] =='\n')
line++;
}
//得到要穿入的值
snprintf(time_arr,sizeof(time_arr),
"%d.%d-%02d-%02d %02d:%02d:%02d\n",
line,tim->tm_year + 1900, tim->tm_mon + 1, tim->tm_mday,tim->tm_hour,tim->tm_min,tim->tm_sec);
//记录时间到文本中
//建立文本
fputs(time_arr,fp);
sleep(1);
fflush(fp);
}
return 0;
}