fopen(),fclose() 打开/关闭文件
打开/关闭/刷新流
1. fopen() 打开流
功能:
1)fopen()打开由 path指定的一个文件。
2)fdopen()获取一个先有的文件描述符,并使一个标准的I/O流与该描述相结合。此函数常用于由创建管道和网络通信函数小所返回的描述符。因为这些特殊类型的文件不能用标准I/O fopen函数打开,我们必须先调用设备专用函数以获得一个文件描述符,然后用fopen使一个标准I/O流与该描述符相关联。
3)fropen()在一个指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流。若流已经定向,这fopen清除该定向。吃函数一般用于将一个指定的文件代开为一个预定流,如:标准输入、标准输出和标准错误。
所需头文件:<stdio.h>
函数原型:
FILE *fopen(const char *path, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
FILE *fdopen(int fd, char *mode);
参数:
fopen: path 将要的打开的指定文件的绝对路径; mode 文件打开的方式。
freopen: path 要重定向的文件绝对路径,mode 文件打开方式, stream 已经打开的流。
fdopen:fd 已经打开的文件描述符, mode 文件打开方式。
返回值:
成功:流指针 失败:NULL
参数mode:
r,rb:以只读方式打开文件,文件必须已经存在
对应文件I/O:open(path, O_RDONLY);
r+,rb+:以读写方式打开文件,文件必须存在
w,wb:以只写方式打开文件,若文件存在,则将该文件内容清空;若文件不存在,则创建文件。
w+,wb+:以读写方式打开文件,若文件存在,则将该文件内容清空;若文件不存在,则创建文件。
a,ab:以追加方式只写打开文件,若文件不存在,则创建文件;若文件存在,写入的数据会被追加到文件末尾,文件原先的内容保留。
a+,ab+:以追加方式可读写打开文件,若文件不存在,则创建文件;若文件存在,写入的数据会被追加到文件末尾,文件原先的内容保留。
frepen()重定向使用示例
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *fp;
if (argc < )
{
fprintf("Usage:%s filename\n", argv[]);
return -;
}
freopen(argv[], "w", stdout); //将标准输入重定向为argv[1]所指定的文件。
fprintf("after freopen!\n");
return ;
}
输出结果将在argv[]指定的文件中
2. fclose()关闭流
功能:关闭一个文件流
所需头文件 <stdio.h>
函数原型:
int fclose(FILE *fp);
参数:
fp :要关闭的流。
返回值:
调用成功返回0;失败返回EOF并设置errno
值得注意的是,fclose()在关闭流之前,会先将缓冲区里的数据输出,如果标准I/O库已经为该流分配了一个缓冲区,则释放缓冲区。
当一个进程正常终止时(直接调用exit()函数<_exit()终止的进程不会刷新流>,或从main函数返回),则所有带有未写缓存数据的标准I/O都会被刷新,所有代课的标准I/O都被关闭。
3. 刷新流
功能:强制刷新一个流。此函数使该流所有未写的数据都被传递到内核。
函数原型:
int fflush(FILE *fp);
参数:
fp:要刷新的流。
fopen(),fclose() 打开/关闭文件的更多相关文章
- 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序
利用上下文管理实现读f文件前后自动打开关闭文件#在本目录创建f文件,内容写monkey代码如下 import contextlib #导入模块1 @contextlib.contextmanager# ...
- open(),close() 打开/关闭文件
Open open()是一个系统调用函数,用来打开或创建一个文件,通过不同的oflag选项实现不同功能. 使用时open()函数需要包含的头文件:<sys/types.h>,<sys ...
- [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等
1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...
- PHP怎么打开或者关闭文件?
什么是文件处理? 文件处理包括读取,关闭,重写等.掌握文件的处理需要读者理清思路,掌握好文件处理的关键步骤和常用函数,那么就可以运用自如了!感兴趣的请移步php文件处理专题. 比如,访问一个文件需要 ...
- PHP 文件处理----fopen(),fclose(),feof(),fgets(),fgetc()
fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件: < ...
- 标准IO: 文件的打开与关闭函数 fopen & fclose
(1) 流(stream)和文件(file) 流和文件 在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西, 称之为"流&quo ...
- 文件操作 fopen() fclose()
#define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误提示*/ /* fopen example */ #include <stdio ...
- 文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"
char const* filename="D:/hello.txt"; 路径名使用的是“/”或者使用 转义字符“\\”: "fopen", FILE *fp= ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...
随机推荐
- Linux修改SSH连接数 重启SSH服务
系统 linux,增加SSH终端连接数最大为1000个 解决方案: vi /etc/ssh/sshd_config 输入/MaxStartups 定位到如下并修改 1) #MaxStar ...
- 忘记 mysql5.5.24 数据库 root 密码
兹整理如下,供网友参考 第一步:关闭mysql服务 第二步:新建txt 写入如下内容 UPDATE mysql.user SET Password=PASSWORD('blog.const.net.c ...
- java开发的web下载大数据时的异常处理
同事用java开发了一个系统,其中有一个功能是下载大约10万笔数据到Excel中.当上线后,很多用户反映下载数据量大的时候就不能成功,但有时可以,所以结论就是系统不稳定,这个问题拖了很久没有解决. 在 ...
- servlet的含义和作用
servle(Server Applet):全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是 ...
- displaytag 简单使用流程
1. 首先导入包:displaytag-1.2.jar,commons-lang.jar和standard.jar;commons-beanutils.jar;这四个jar包 2. 然后在jsp页面做 ...
- IE6~9的css hack写法
_color: red; /* ie6 */ *color: red; /* ie6/7 */ +color: red; /* ie6/7 */ color: red\0; /* ie8/9 */ c ...
- List容器
List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...
- JNI学习&使用过程中的错误
Part 1 Ubuntu下JNI的简单使用: http://blog.csdn.net/fengqiaoyebo2008/article/details/6210499 Part 2 在eclips ...
- Java学习笔记--String StringBuffer StringBuilder
String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...
- Swift--存储属性-备
Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据. 存储属性可以存储数据,分为常量属性(用关键字let定义) ...