编写一个程序,使之每隔1秒保存一次当前系统的时间和行号。要求终止该程序后,重启程序能继续保存时间,并且保持行号连续。

更多资料请点击:我的目录
本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。

输出结果:
在这里插入图片描述
中断后重新开始:
在这里插入图片描述

#include <time.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
	FILE *fp = fopen("time.txt","a+");//a+以读写方式打开或创建文件
	setvbuf(fp, NULL, _IONBF, 0);	//设置缓冲区方式,设置为无缓冲
	int n = 0;
	char s[100];		//自定义缓冲区大小

	while(1)//此循环用于读取文件中原来数据的行数
	{
		if(fgets(s, 100, fp) ==NULL)//fgets读取最多一行数据
			break;
		n++;
	}
	while(1)//次循环用于将新数据追加在原有数据后
	{
		time_t t = time(NULL);	//获取时间
		n ++;
		fprintf(fp, "%d    %s", n, ctime(&t));//将格式化数据写入指定的文件或者内存
		printf("%d   %s", n, ctime(&t));//在终端打印输出
		sleep(1);//设置间隔时间为1秒
	}
	return 0;
}

更多资料请点击:我的目录

发布了75 篇原创文章 · 获赞 35 · 访问量 5906

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/104312208