欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > C语言中的文件I/O

C语言中的文件I/O

2025/5/24 17:21:26 来源:https://blog.csdn.net/Michael_lcf/article/details/148176243  浏览:    关键词: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 = 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词