文件输入/输出

< c
 
 
文件输入/输出
类型与对象
函数
文件访问
直接输入/输出
无格式输入/输出
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
有格式输入
 

<stdio.h> 头文件提供通用文件操作支持并提供有窄字符输入/输出能力的函数。

<wchar.h> 头文件提供有宽字符输入/输出能力的函数。

I/O 流为 FILE 对象所代表,只能通过 FILE* 类型指针访问及操作。每个流与外部物理设备(文件、标准输入流、打印机、序列端口等)关联。

类型

定义于头文件 <stdio.h>
对象类型,足以保有控制 C I/O 流所需的全部信息
(typedef)
非数组完整对象类型,足以唯一指定文件的位置和多字节剖析状态
(typedef)

预定义标准流

定义于头文件 <stdio.h>
与标准输入流关联的 FILE* 类型表达式
与标准输出流关联的 FILE* 类型表达式
与标准错误输出流关联的 FILE* 类型表达式
(宏常量)

函数

文件访问
定义于头文件 <stdio.h>
打开文件
(函数)
以不同名称打开既存的文件流
(函数)
关闭文件
(函数)
将输出流与实际文件同步
(函数)
为文件流设置缓冲区
(函数)
为文件流设置缓冲区和其大小
(函数)
定义于头文件 <wchar.h>
(C95)
将文件流在宽字符I/O和窄字符I/O间切换
(函数)
直接输入/输出
定义于头文件 <stdio.h>
从文件读取
(函数)
写入到文件
(函数)
无格式输入/输出
窄字符
定义于头文件 <stdio.h>
从文件流获取一个字符
(函数)
从文件流获取一个字符串
(函数)
将一个字符写入文件流
(函数)
将一个字符串写入文件流
(函数)
stdin 读取一个字符
(函数)
(C11 中移除)(C11)
stdin 读取一个字符串
(函数)
将一个字符写入 stdout
(函数)
将一个字符串写入 stdout
(函数)
将一个字符送回文件流
(函数)
宽字符
定义于头文件 <wchar.h>
从文件流获取一个宽字符
(函数)
(C95)
从文件流获取一个宽字符串
(函数)
将一个宽字符写入文件流
(函数)
(C95)
将一个宽字符串写入文件流
(函数)
stdin 读取一个宽字符
(函数)
将一个宽字符写入 stdout
(函数)
将一个宽字符送回文件流
(函数)
有格式输入/输出
窄字符
定义于头文件 <stdio.h>
stdin、文件流或缓冲区读取格式化输入
(函数)
stdin 、文件流或缓冲区读取格式化输入
使用可变参数列表
(函数)
打印格式化输出到 stdout 、文件流或缓冲区
(函数)
打印格式化输出到stdout、文件流或缓冲区
使用可变参数列表
(函数)
宽字符
定义于头文件 <wchar.h>
stdin、文件流或缓冲区读取格式化宽字符输入
(函数)
stdin、文件流或缓冲区读取格式化宽字符输入
使用可变参数列表
(函数)
打印格式化宽字符输出到 stdout 、文件流或缓冲区
(函数)
打印格式化宽字符输出到 stdout 、文件流或缓冲区
使用可变参数列表
(函数)
文件位置
定义于头文件 <stdio.h>
返回当前的文件位置指示值
(函数)
获取文件位置指示器
(函数)
将文件位置指示符移动到文件中的指定位置
(函数)
将文件位置指示器移动到文件中的指定位置
(函数)
将文件位置指示器移动到文件首
(函数)
错误处理
定义于头文件 <stdio.h>
清除错误
(函数)
检查文件结尾
(函数)
检查文件错误
(函数)
显示对应当前错误的字符串到 stderr
(函数)
文件操作
定义于头文件 <stdio.h>
删除文件
(函数)
重命名文件
(函数)
返回指向临时文件的指针
(函数)
返回唯一的文件名
(函数)

宏常量

定义于头文件 <stdio.h>
EOF
int 类型的负值整数常量表达式
(宏常量)
FOPEN_MAX
能同时打开的文件数
(宏常量)
FILENAME_MAX
保有最长受支持文件名所需的 char 数组大小
(宏常量)
BUFSIZ
setbuf() 所用的缓冲区大小
(宏常量)
_IOFBF_IOLBF_IONBF
指示全缓冲 I/O 的 setvbuf() 参数
指示行缓冲 I/O 的 setvbuf() 参数
指示无缓冲 I/O 的 setvbuf() 参数
(宏常量)
SEEK_SETSEEK_CURSEEK_END
指示从文件首开始寻位的 fseek() 参数
指示从文件当前位置开始寻位的 fseek() 参数
指示从文件尾开始寻位的 fseek() 参数
(宏常量)
TMP_MAXTMP_MAX_S
(C11)
tmpnam 所能生成的最大独有文件数
tmpnam_s 所能生成的最大独有文件数
(宏常量)
L_tmpnamL_tmpnam_s
(C11)
保有 tmpnam 结果所需的 char 数组大小
保有 tmpnam_s 结果所需的 char 数组大小
(宏常量)

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.21 Input/output <stdio.h> (p: 296-339)
  • 7.29 Extended multibyte and wide character utilities <wchar.h> (p: 402-446)
  • 7.31.11 Input/output <stdio.h> (p: 456)
  • 7.31.16 Extended multibyte and wide character utilities <wchar.h> (p: 456)
  • K.3.5 Input/output <stdio.h> (p: 586-603)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.19 Input/output <stdio.h> (p: 262-305)
  • 7.24 Extended multibyte and wide character utilities <wchar.h> (p: 348-392)
  • 7.26.9 Input/output <stdio.h> (p: 402)
  • 7.26.12 Extended multibyte and wide character utilities <wchar.h> (p: 402)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.9 INPUT/OUTPUT <stdio.h>
  • 4.13.6 Input/output <stdio.h>

参阅