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

IO标准函数和时间函数

1、将当前的时间写入到time. txt的文件中,如果ctrl+c退出之后,在再次执行支持断点续写

1.2022-04-26 19:10:20

2.2022-04-26 19:10:21

3.2022-04-26 19:10:22

//按下ctrl+c停止,再次执行程序

4.2022-04-26 20:00:00

5.2022-04-26 20:00:01

#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <signal.h>FILE *file;  // 用于写入时间到文件// 捕获 SIGINT 信号(Ctrl+C)处理函数
void handle_sigint(int sig) {if (file != NULL) {fclose(file);  // 关闭文件}printf("\nExiting gracefully...\n");exit(0);  // 退出程序
}int main(int argc, const char *argv[]) {signal(SIGINT, handle_sigint);  // 捕获 SIGINT 信号,优雅退出// 打开 time.txt 文件进行追加写入file = fopen("time.txt", "a");if (file == NULL) {perror("Failed to open time.txt");return 1;}while (1) {time_t sec;time_t res = time(&sec);  // 获取当前时间戳struct tm *t = localtime(&sec);  // 转换为本地时间if (t == NULL) {perror("localtime error");fclose(file);  // 错误时关闭文件return 1;}// 格式化并输出当前时间到文件fprintf(file, "%d-%02d-%02d %02d:%02d:%02d\n",t->tm_year + 1900,   // tm_year 是从 1900 年开始t->tm_mon + 1,       // tm_mon 是从 0 开始t->tm_mday,          // tm_mday 是日期t->tm_hour,          // tm_hour 是小时t->tm_min,           // tm_min 是分钟t->tm_sec);          // tm_sec 是秒// 立即刷新文件缓冲区,以确保每次写入都能被保存fflush(file);sleep(1);  // 每秒写入一次}// 关闭文件,虽然这个部分在无限循环中不会执行fclose(file);return 0;
}

2、使用fwrite和fread函数实现图片的拷贝

prt sc ---截图

eog 文件名 ----》打开文件

#include <stdio.h>
#include <stdlib.h>int main() {FILE *sourceFile, *destFile;char *sourceFilename = "source_image.jpg";  // 源文件名char *destFilename = "destination_image.jpg";  // 目标文件名// 打开源文件,读取模式sourceFile = fopen(sourceFilename, "rb");if (sourceFile == NULL) {perror("Error opening source file");return 1;}// 打开目标文件,写入模式destFile = fopen(destFilename, "wb");if (destFile == NULL) {perror("Error opening destination file");fclose(sourceFile);return 1;}// 获取源文件的大小fseek(sourceFile, 0, SEEK_END);  // 定位到文件末尾long fileSize = ftell(sourceFile);  // 获取文件大小fseek(sourceFile, 0, SEEK_SET);  // 将文件指针移回文件开头// 为文件内容分配内存unsigned char *buffer = (unsigned char *)malloc(fileSize);if (buffer == NULL) {perror("Memory allocation error");fclose(sourceFile);fclose(destFile);return 1;}// 读取源文件内容size_t bytesRead = fread(buffer, 1, fileSize, sourceFile);if (bytesRead != fileSize) {perror("Error reading source file");free(buffer);fclose(sourceFile);fclose(destFile);return 1;}// 将内容写入目标文件size_t bytesWritten = fwrite(buffer, 1, bytesRead, destFile);if (bytesWritten != bytesRead) {perror("Error writing to destination file");free(buffer);fclose(sourceFile);fclose(destFile);return 1;}// 清理资源free(buffer);fclose(sourceFile);fclose(destFile);printf("Image copied successfully.\n");return 0;
}

http://www.lryc.cn/news/546339.html

相关文章:

  • 为AI聊天工具添加一个知识系统 之133 详细设计之74通用编程语言 之4 架构及其核心
  • 【零基础到精通Java合集】第二十三集:G1收集器深度解析
  • 似然函数与极大似然估计
  • QSFP(Quad Small Form-factor Pluggable)详解
  • WDM_OTN_基础知识_波分系统基本构成-无源器件
  • 【音视频】ffmpeg音视频处理基本流程
  • 【网络编程】之TCP实现客户端远程控制服务器端及断线重连
  • 云原生容器编排:构建智能弹性应用的自动化引擎
  • centos虚拟机安装
  • 社会力模型:Social force model for pedestrian dynamics
  • 机器学习数学通关指南
  • 【Mac】2025-MacOS系统下常用的开发环境配置
  • # C# 中堆(Heap)与栈(Stack)的区别
  • ubuntu离线安装nvidia-container-runtime
  • 用Python+Flask打造可视化武侠人物关系图生成器:从零到一的实战全记录
  • 学习笔记-DeepSeek在开源第四天发布DualPipe和EPLB两项技术
  • C++入门基础知识1
  • 神经网络AI原理回顾
  • PPT 小黑第38套
  • 主时钟与虚拟时钟约束
  • K8S学习之基础六:k8s中pod亲和性
  • 如何通过rust实现自己的web登录图片验证码
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • QKV 注意力机制在Transformer架构中的作用,和卷积在卷积神经网络中的地位,有哪些相似之处?
  • 高效与高并发API开发:使用FastAPI与Redis实现请求限制与速率控制
  • Centos7源码编译安装Sqlite最新版本
  • mybatis热点面试题第五弹
  • KTransformers部署 使671B DeepSeek R1成「办公桌标配」
  • sql-labs less5-8
  • 一个大型应用的云原生一般有多少个服务?