打开 filename 所指示的文件并返回与该文件关联的流。用 mode 确定文件访问模式。
参数
| filename
|
-
|
要关联文件流到的文件名
|
| mode
|
-
|
确定文件访问模式的空终止字符串
| 文件访问模式字符串
|
含义
|
解释
|
若文件已存在的行动
|
若文件不存在的行动
|
"r"
|
读
|
为读取打开文件
|
从起始读取
|
打开失败
|
"w"
|
写
|
为写入创建文件
|
销毁内容
|
创建新文件
|
"a"
|
追加
|
追加到文件
|
写入到末尾
|
创建新文件
|
"r+"
|
扩展读
|
为读取/写入打开文件
|
从起始读取
|
错误
|
"w+"
|
扩展写
|
为读取/写入创建文件
|
销毁内容
|
创建新文件
|
"a+"
|
扩展追加
|
为读取/写入打开文件
|
写入到末尾
|
创建新文件
|
文件访问模式标志 "b" 能可选地指定,以用二进制模式打开文件。此标志在 POSIX 系统上无效果,但例如在 Windows 上,它禁用 '\n' 和 '\x1A' 的特殊处理。 在追加文件访问模式上,写入数据到文件尾,忽略文件位置指示器的当前位置。
|
文件访问模式标志 "x" 能可选地追加到 "w" 或 "w+" 指定符。此标志强制函数在文件存在的情况下失败,而非重写文件。(C++17)
|
| 若模式不是以上字符串之一,则行为未定义。一些实现定义额外的支持模式(例如 MSVC )。
|
|
返回值
若成功,则返回指向控制打开的文件流的对象的指针,并清除文件尾和错误位。流为完全缓冲,除非 filename 指代交互设备。
错误时,返回空指针。 POSIX 要求此情况下设置 errno 。
注意
filename 的格式是实现定义的,且不必指代一个文件(例如它可以是控制台或另一能通过文件系统 API 访问的设备)。在支持的平台上, filename 可包含绝对或相对文件系统路径。
可移植的目录和文件命名,见 C++ 文件系统库或 boost.filesystem 。
示例
参阅