当前位置: 首页 > news >正文

c语言 - 实现每隔1秒向文件中写入当前系统时间

在这里插入图片描述

实现思路

主要是通过库函数和结构体获取当前系统时间(年月日和时分秒)保存到变量里,然后通过格式化输出函数将当前系统时间输出到文件中去。
但是需要注意的是题目要求每隔 1 s对系统时间进行输出,所以需要加入 sleep()函数进行调整 ,而且如果加入 sleep() 函数还想要输出数据到文件中的话是必须要在每一次输出数据后刷新缓冲区的。

#include <stdio.h>
#include <time.h>
#include <unistd.h>int main(int argc, char *argv[])
{FILE *fp;time_t current_time;struct tm *local_time;if((fp = fopen("test.txt", "w")) == NULL){perror("fopen");}int i = 0;while (1){time(&current_time);local_time = localtime(&current_time);int year = local_time->tm_year + 1900; int month = local_time->tm_mon + 1;int day = local_time->tm_mday;int hour = local_time->tm_hour;int minute = local_time->tm_min;int second = local_time->tm_sec;i++;printf("%d-%d-%d %d:%d:%d\n", year, month, day, hour, minute, second);fprintf(fp, "%d, %d-%d-%d %d:%d:%d\n", i, year, month, day, hour, minute, second);fflush(fp);sleep(1);}return 0;
}

存在的问题

  • 我在写这个程序的时候把 时间戳的获取和年月日时分秒的赋值 放在了循环体外,导致每一次输出到文件的系统时间都不变,其实必须放在循环体内才能获得每一秒的时间戳从而获得正确的数据
  • 使用 sleep() 函数发现系统时间数据并没有输出到文件中,后来发现是没有加 fflush 对缓冲区进行刷新。
  • 不会获取当前系统时间,一定要记住这个获取当前系统时间的方式!
  • 对于标准输出 ‘\n’ 会导致自动刷新缓冲区,但是对于文件没有用,也就是这里的 fprintf 函数里的 ‘\n’ 对于自动刷新缓冲区没用。
http://www.lryc.cn/news/177795.html

相关文章:

  • 使用cpolar端口映射的方法轻松实现在Linux环境下SVN服务器的搭建与公网访问
  • 前后台分离开发 YAPI平台 前端工程化之Vue-cli
  • 【js/es6】合集
  • Nginx modules build fail:field ‘pkt6’ has incomplete type
  • 电脑突然提示mfc140u.dll丢失,缺失mfc140u.dll无法运行程序的解决方法
  • 国庆day1
  • 从零开始之了解电机及其控制(11)实现空间矢量调制
  • 如何将html转换成markdown
  • 【VUE复习·3】@keyup.xxx 键盘事件触发函数(单按键 or 组合按键触发)
  • IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)
  • 巨人互动|Facebook海外户Facebook的特点优势
  • (vue3)create-vue 组合式API
  • 【如何看待Unity收费】对标中小公司的待就业者的该如何做
  • c++迷宫小游戏
  • 需求堆积,如何排序产品优先极
  • 计算机视觉 回头重新理解图像中的矩
  • MapStruct应用实战及BeanUtils性能比较
  • ISP技术概述
  • CSDN: ABTest流量分层分桶机制
  • 【小余送书第一期】《数据要素安全流通》参与活动,即有机会中奖哦!!
  • 蓝牙核心规范(V5.4)10.7-BLE 入门笔记之L2CAP
  • VUE之正则表达式全集整理
  • Python 中的字符串基础与应用
  • C++:如何实现数组元素逆置?多种方法
  • php框架thinkPHP6的安装教程
  • PTA程序辅助实验平台——2023年软件设计综合实践_3(分支与循环)
  • 【C语言数据结构】线性表-链式存储-单链表
  • tp8 Editor.md
  • LM小型可编程控制器软件(基于CoDeSys)笔记三十一:保持变量和非保持变量
  • 「C++之STL」关于在模拟实现STL容器中的深浅拷贝问题