fopen(),fclose() 打开/关闭文件

时间:2022-03-09 12:34:57

打开/关闭/刷新流

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() 打开/关闭文件的更多相关文章

  1. 根据python上下文管理,写一个在读文件内容前后自动打开关闭文件的程序

    利用上下文管理实现读f文件前后自动打开关闭文件#在本目录创建f文件,内容写monkey代码如下 import contextlib #导入模块1 @contextlib.contextmanager# ...

  2. open&lpar;&rpar;,close&lpar;&rpar; 打开&sol;关闭文件

    Open open()是一个系统调用函数,用来打开或创建一个文件,通过不同的oflag选项实现不同功能. 使用时open()函数需要包含的头文件:<sys/types.h>,<sys ...

  3. &lbrack;Python&rsqb; python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  4. PHP怎么打开或者关闭文件?

    什么是文件处理? 文件处理包括读取,关闭,重写等.掌握文件的处理需要读者理清思路,掌握好文件处理的关键步骤和常用函数,那么就可以运用自如了!感兴趣的请移步php文件处理专题. 比如,访问一个文件需要 ...

  5. PHP 文件处理----fopen&lpar;&rpar;&comma;fclose&lpar;&rpar;&comma;feof&lpar;&rpar;&comma;fgets&lpar;&rpar;&comma;fgetc&lpar;&rpar;

    fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件: &lt ...

  6. 标准IO: 文件的打开与关闭函数 fopen &amp&semi; fclose

    (1) 流(stream)和文件(file)    流和文件 在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西, 称之为"流&quo ...

  7. 文件操作 fopen&lpar;&rpar; fclose&lpar;&rpar;

    #define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误提示*/ /* fopen example */ #include <stdio ...

  8. 文件流:&quot&semi;fopen&quot&semi;&comma;&quot&semi;fclose&quot&semi;&comma;&OpenCurlyDoubleQuote;ftell”&quot&semi;fseek&quot&semi;&comma;&quot&semi;fgets&quot&semi;&comma;&quot&semi;fprintf&quot&semi; ,&OpenCurlyDoubleQuote;feof”&comma;&quot&semi;fwrite&quot&semi;&comma;&quot&semi;fread&quot&semi;

    char const* filename="D:/hello.txt"; 路径名使用的是“/”或者使用 转义字符“\\”: "fopen", FILE *fp= ...

  9. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...

随机推荐

  1. Java 之 数据库编程(JDBC)

    1.JDBC a.定义:是一种用于执行SQL语句的Java API,它由一组用Java 语言编写的类和接口组成 b.操作步骤: ①加载驱动--告诉驱动管理器我们将使用哪一个数据库的驱动包 Class. ...

  2. sketchup

    1. clean start 1. 删除中间人物 2. windows---style 3. Windows---Model Info 2. 好的建模习惯 1. 正面朝镜头 View---ToolBa ...

  3. IE&sol;Firefox&sol;Chrome等浏览器保存Cookie的位置

    IE/Firefox/Chrome等浏览器保存Cookie的位置 原文  http://smilejay.com/2013/04/browser-cookie-location/   前面写了篇长文( ...

  4. 安装LINUX X86-64的10201出现链接ins&lowbar;ctx&period;mk错误-转自yingtingkun

    详细错误信息为: Error in invoking target ‘install’ of makefile ‘/opt/oracle/product/10.2/ctx/lib/ins_ctx.mk ...

  5. bzoj 1024 暴力深搜

    我们直接暴力的深搜怎么切就行了, 每一刀切的方案只有横着和竖着,横竖又分在几等分点切, 因为要保证每个人的面积相同,所以比较好处理了,第几个几等分点就 分给这边几刀. /*************** ...

  6. 一个Ctrl&plus;V下的问题

    对于电脑快捷键来说恐怕没什么比Ctrl+C和Ctrl+V更熟悉的了. 最近做了一个小程序,界面上有一个文本框,要做的事情就是把从别的地方复制内容后粘贴到文本框中,然后以自己处理后的格式显示出来. 为了 ...

  7. 文件服务&mdash&semi;&mdash&semi;Vsftpd

    文件传输协议(FTP): 能够让用户在互联网中上传.下载文件的文件协议,FTP服务就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行. 通常用户使用FTP客户端软 ...

  8. jquery在ie浏览器下中文乱码的问题

    用jquery的ajax方法在调用后台数据发现中文乱码,无法解析中文的url,而在别的浏览器下面就不会,如下所示 $.ajax({ type:'get', url:'薛之谦-演员.lrc', asyn ...

  9. Python一日一练05----怒刷点击量

    功能 自己主动获取CSDN文章列表,并对每篇文章添加点击量. 源代码 import urllib.request import re import time import random from bs ...

  10. webpack入门(二)what is webpack

    webpack is a module bundler.webpack是一个模块打包工具,为了解决上篇一提到的各种模块加载或者转换的问题. webpack takes modules with dep ...