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

C语言中的文件I/O

C标准I/O库函数

  • 1、C标准I/O库函数
    • 1.1、打开/写入/读取/关闭文件
    • 1.2、读取文件数据
      • 1.2.1、fgetc
      • 1.2.2、fgets
      • 1.2.3、fscanf
    • 1.3、标准输入/输出/错误
  • 2、系统调用
    • 2.1、常用的系统调用
    • 2.2、综合小demo
  • 3、文件描述符
    • 3.1、定义
    • 3.2、`文件描述符`关联的数据结构
      • 3.2.1、struct file
      • 3.2.2、struct path
      • 3.2.3、struct inode
    • 3.3、`文件描述符表`关联的数据结构
      • 3.3.1、打开的文件表数据结构
      • 3.3.2、打开文件描述符表
      • 3.3.3、fd_array和fd
      • 3.3.4、文件描述符和fd或fd_array的关系
    • 3.4、文件描述符引用图解

1、C标准I/O库函数

1.1、打开/写入/读取/关闭文件

fopen/fputc/fputs/fprintf/fclose/

vim fopen_test.c
===================================
#include <stdio.h>int main() {/* 打开文件char *__restrict __filename: 字符串表示要打开文件的路径和名称char *__restrict __modes: 字符串表示访问模式(1)"r": 只读模式 没有文件打开失败(2)"w": 只写模式 存在文件写入会清空文件,不存在文件则创建新文件(3)"a": 只追加写模式 不会覆盖原有内容 新内容写到末尾,如果文件不存在则创建(4)"r+": 读写模式 文件必须存在 写入是从头一个一个覆盖(5)"w+": 读写模式 可读取,写入同样会清空文件内容,不存在则创建新文件(6)"a+": 读写追加模式 可读取,写入从文件末尾开始,如果文件不存在则创建return: FILE * 结构体指针 表示一个文件FILE *fopen (const char *__restrict __filename, const char *__restrict __modes)*/char *filename = "io.txt";FILE *ioFile = fopen(filename, "a+");if (ioFile == NULL) {printf("FAILED,a+不能打开不存在的文件\n");} else {printf("SUCCESS,a+能打开不存在的文件\n");}/*写入文件一个字符int __c: 写入的char按照AICII值写入 可提前声明一个charFILE *__stream: 要写入的文件,写在哪里取决于访问模式return: 成功返回char的值 失败返回EOFint fputc (int __c, FILE *__stream)*/int putcR = fputc(97, ioFile);if (putcR == EOF) {printf("写入字符失败\n");} else {printf("写入字符成功:%c\n", putcR);}/*写入文件一个字符串char *__restrict __s: 需要写入的字符串FILE *__restrict __stream: 要写入的文件,写在哪里取决于访问模式return: 成功返回非负整数(一般是0,1) 失败返回EOFint fputs (const char *__restrict __s, FILE *__restrict __stream)*/int putsR = fputs(" love letter\n", ioFile);if (putsR == EOF) {printf("写入字符串失败\n");} else {printf("写入字符串成功:%d\n", putsR);}/*FILE *__restrict __stream: 要写入的文件,写在哪里取决于访问模式char *__restrict __fmt: 格式化字符串...: 变长参数列表return: 成功返回正整数(写入字符总数不包含换行符) 失败返回EOFfprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...)*/char *name = "大海";int fprintfR = fprintf(ioFile,"哎呀,那边窗户透出了什么光?\n那是东方,而你则是太阳!\n升起吧,骄阳,去让忌妒的月黯然失色!\n\t\t%s",name);if (fprintfR == EOF) {printf("写入字符串失败");} else {printf("写入字符串成功:%d\n", fprintfR);}/*FILE *__stream: 需要关闭的文件return: 成功返回0 失败返回EOF(负数) 通常失败会造成系统崩溃int fclose (FILE *__stream)*/int result = 

相关文章:

  • 单目视觉测量及双目视觉测量
  • 【软件安装】Windows操作系统中安装mongodb数据库和mongo-shell工具
  • 【AUTOSAR网络管理】T_NM_Timeout参数测试指南
  • 10G SFP+ 双纤光模块选购避坑指南:从SFP-10G-LRM到SFP-10G-ZR的兼容性与应用
  • 八股--SSM(2)
  • 【通用智能体】smolagents/open_deep_research:面向开放式研究的智能体开发框架深度解析
  • STM32 CubeMX时钟配置PWM信号输出
  • SOC-ESP32S3部分:8-GPIO输出LED控制
  • 辐射发射RE测试
  • 生成模型——扩散模型(Diffusion Model)
  • LoRA(Low-Rank Adaptation)
  • 从JDK 8到JDK 17的主要变化
  • 生成模型——Pix2Pix
  • 软件工程(八):UML类图的几种关系
  • 光流法(Optical Flow)
  • Python打卡训练营day30-库的导入
  • I.MX6ULL_Linux_系统篇(26) buildroot分析
  • 南京邮电大学《智能控制技术》期末抢救(上)
  • 高可用集群keepalived
  • 01_07小结
  • 外贸仿牌网站/中国免费网站服务器主机域名
  • 企业网站建设趋势/安徽网站seo公司
  • 西安优惠电商平台网站/google推广及广告优缺点
  • 网络域名也可以用中文名称来命名/seo优化人员
  • 怎么查看网站外链效果/自己有网站怎么推广
  • 做同城相亲网站/小程序模板