《UNIX环境高级编程》笔记--打开流

下列三个函数打开一个标准IO流。

#include <stdio.h>
FILE* fopen(const char* restrict pathname, const char* restrict type);
FILE* freopen(const char* restrict pathname, const char* restrict type, FILE* restrict fp);
FILE* fdopen(int filedes, char* type);

三个函数,如果成功返回文件指针,失败则返回NULL。

三个函数的区别是:

fopen打开一个指定的文件。

freopen在一直指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流。如果该流已经定向,则freopen清除该

定向。此函数一般用于将一个指定的文件打开为一个预定的流:标准输入,标准输出或标准出错。

fdopen获取一个现有的文件描述符,并使一个标准的IO流与该描述符相结合。此函数常用与由创建管道和网络通信函数返回

的描述符,因为这些特殊类型的文件不能用标准IO fopen函数打开,所以我们必须先调用设备专用函数获取一个文件描述符,

然后用fdopen使一个标准IO流与该描述符相关联。


type参数指定对IO流的读写方式,详细如下表:


(使用b,使得标准IO可以区分文本文件和二进制文件)

注意:对于fdopen,type的意义稍有不同,因为该描述符已经被打开,所以fdopen为写而打开并不截短该文件,另外也不能

创建该文件。

总结一下上表的内容:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值