Linux C 语言文件 IO 与构建工具实战指南
软件包管理器Linux下使用vscode进行代码编写makefilesudo apt install -y build-essential使用这个进行安装。其使用格式如下CC:gcc fopen_test: fopen_test.c -$(CC) -o $ $^ -./$ -rm ./$文件IO打开/关闭文件#includestdio.h int main() { FILE* ioFile fopen(a.txt,w); if(ioFile NULL) { printf(打开错误\n); } else { printf(打开成功\n); } int ret fclose(ioFile); if(ret EOF) { printf(关闭文件失败\n); } else if(ret 0) { printf(关闭文件成功); } return 0; }向文件写入数据#includestdio.h int main() { FILE* ioFile fopen(a.txt,a); if(ioFile NULL) { printf(打开错误\n); } else { printf(打开成功\n); } fputc(a,ioFile); fputs(i am real\n,ioFile); char arr[] 云山; fprintf(ioFile,大风手印%s\n,arr); int ret fclose(ioFile); if(ret EOF) { printf(关闭文件失败\n); } else if(ret 0) { printf(关闭文件成功); } return 0; }从文件读取数据#include stdio.h int main() { FILE *ioFile fopen(a.txt, r); if (ioFile NULL) { printf(打开错误\n); } else { printf(打开成功\n); } // char get fgetc(ioFile); // while(get ! EOF) // { // printf(%c,get); // get fgetc(ioFile); // } // printf(\n); // char arr[128]; // while(fgets(arr, sizeof(arr), ioFile)) // { // printf(%s,arr); // } // printf(\n); char arr[128]; while(fscanf(ioFile, %s, arr) 1) { printf(%s\n, arr); } printf(\n); int ret fclose(ioFile); if (ret EOF) { printf(关闭文件失败\n); } else if (ret 0) { printf(关闭文件成功); } return 0; }标准输入/输出/错误#includestdio.h #includestdlib.h int main() { char *ch (char*)malloc(sizeof(char)*100); fgets(ch,100,stdin); fputs(ch,stdout); return 0; }系统调用#includeunistd.h #includefcntl.h #includestdio.h int main() { int ret open(a.txt,O_RDONLY|O_CREAT|O_WRONLY,0664); if(ret -1) { printf(打开文件失败\n); } char arr[32]; read(ret,arr,sizeof(arr)); printf(%s,arr); return 0; } #includeunistd.h #includefcntl.h #includestdio.h #includestdlib.h int main() { int fd open(a.txt,O_RDONLY); if(fd -1) { printf(打开文件失败\n); exit(EXIT_FAILURE); } char buffer[256]; ssize_t bytes 0; while((bytes read(fd,buffer,sizeof(buffer))) 0) { write(STDOUT_FILENO, buffer, bytes); } printf(\n); if(bytes -1) { printf(打印失败\n); close(fd); exit(EXIT_FAILURE); } return 0; }文件描述符当打开一个文件会得到一个句柄里面的信息就与文件物理进行相互关联来保证我们对文件进行操作。0是标准输入stdin的文件描述符1是标准输出stdout的文件描述符2是标准错误stderr的文件描述符。struct file { ...... atomic_long_t f_count; // 引用计数管理文件对象的生命周期 struct mutex f_pos_lock; // 保护文件位置的互斥锁 loff_t f_pos; // 当前文件位置读写位置 ...... struct path f_path; // 记录文件路径 struct inode *f_inode; // 指向与文件相关联的inode对象的指针该对象用于维护文件元数据如文件类型、访问权限等 const struct file_operations *f_op; // 指向文件操作函数表的指针定义了文件支持的操作如读、写、锁定等 ...... void *private_data; // 存储特定驱动或模块的私有数据 ...... } __randomize_layout __attribute__((aligned(4)));

相关新闻

中小建筑企业资质管理避坑指南:从新办到托管的全链路建议

中小建筑企业资质管理避坑指南:从新办到托管的全链路建议

建筑资质是中小建筑企业承接工程项目的核心准入凭证,但资质管理涉及政策解读、人员配置、材料组卷、申报对接、延期维护等多个专业环节,流程复杂、标准严苛。许多中小建筑企业在资质管理过程中踩坑,轻则浪费时间金钱,重则资质失效…

2026/10/24 2:50:43 阅读更多 →
AI Agent 工程实践(33):Agent 如何监控

AI Agent 工程实践(33):Agent 如何监控

摘要:本文针对 AI Agent 上线后“服务活着却在胡说”的监控盲区,梳理了只看存活、只看成本、不盯幻觉三种常见错误,提出 Agent 监控应在传统指标之外额外关注成功率、Tool Error、Latency、Cost、Token、Memory Hit、Hallucination 七个 LLM …

2026/10/27 9:59:37 阅读更多 →
工程勘察劳务资质申报要点与常见驳回原因分析

工程勘察劳务资质申报要点与常见驳回原因分析

工程勘察劳务资质是工程勘察资质体系中的重要组成部分,包括工程钻探和凿井两个分项,不分等级。取得该资质的企业可承担相应的工程钻探、凿井等工程勘察劳务业务,是岩土工程、地质勘察等领域企业的基础准入资质。本文将系统梳理工程勘察劳务资…

2026/10/25 4:14:14 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/1 0:24:43 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/31 10:20:19 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/31 10:20:23 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/1 1:06:58 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/31 10:30:19 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/31 9:29:43 阅读更多 →

日新闻

周新闻

月新闻