打开流
来源:互联网 发布:ins是什么社交软件 编辑:程序博客网 时间:2024/04/30 11:17
下列3个函数可以用来打开一个标准I/O流
#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 fd, const char type); 3个函数的返回值:若成功,返回文件指针;若出错,返回NULL这三个函数的区别如下:
(1)fopen函数打开路径名为pathname的一个指定的文件。
(2)freopen函数在一个指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流。若该流已经定向,则使用freopen清除该定向。此函数一般用于讲一个指定的文件打开为一个预定义的流;标准输入、标准输出或者标准错误。
(3)fdopen函数去一个已有的文件描述符(可能从open dup dup2 fcntl pipe socket socketpair accept),并使用一个标准的I/O流与该描述符相结合。西函数常用于创建管道和网络通信函数返回的描述符。因为这些特殊类型的文件不能用标准I/O函数fopen打开,所以我们必须先调用设备专用函数一伙的一个文件描述符,然后用fdopen使一个标准I/O流与该描述符相结合。
type参数指定对该I/O流的读,写方式,type参数可以有15种不同的值。
type说明open标志r或rb为读打开O_RDONLYw或wb把文件截断至0长,或为写而创建O_WRONLY|O_CREAT|O_TRUNCa或ab追加,为在文件尾写而打开,或为写而创建O_WRONLY|O_CREAT|O_APPENDr+或r+b或rb+为读和写而打开O_RDWRw+或w+b或wb+把文件截断至0长,或为读和写而打开O_RDWR|O_CREAT|O_TRUNCa+或a+b或ab+为在文件尾读和写而打开或创建O_RDWR|O_CREAT|O_APPEND使用字符b作为type的一部分,这使得标准I/O系统可以区分文本和二进制文件。因为UNIX并不对这两种文件进行区分,所以在UNIX系统环境下指定字符b作为type的一部分实际上并无作用。
当以读或写打开一个文件时,具有下列限制。
若果中间没有fflush fseek fsetpos rewind,则在输出的后面不能直接跟随输入。
如果中间没有fseek fsetpos rewind,或者一个输入操作没有到达文件尾端,则在输入操作之后不能直接跟随输出。
限制RWar+w+a+文件必须已存在放弃文件以前的内容*
* *
* 流可以读
流可以写
流只可在尾端处写*
*
*
**
*
*
*
*
*
*
除非流引用终端设备,否则按系统默认,流被打开时是全缓冲的。若流引用终端设备,则流是行缓冲的。一个打开了流,那么在对该流执行任何操作之前,如果希望,则可使用setbuf或setvbuf改变缓冲的类型。
0 0
- 打开流
- 文件流 打开文件
- HTML 打开输入流
- fopen()函数 打开流
- fopen()打开一个流函数
- fopen、freopen、fdopen打开流
- C++流文件的打开与关闭
- C++文件流打开文件失败原因
- 打开标准I/O流函数
- 输入/输出流---打开,读写文件操作
- Linux C编程--打开和关闭流
- Linux C编程--打开和关闭流
- C++文件流打开方式的使用
- 《UNIX环境高级编程》笔记--打开流
- c++ 输入流中文件打开方式
- Socket 套接字打开链接输出流
- openStream打开网络地址获取文件流
- linux主机上打开流慢
- 第一篇文章算个纪念
- Android Studio系列教程三--快捷键
- js如何实现跨域访问
- Android Studio系列教程四--Gradle基础
- openssl常用命令
- 打开流
- USACO 1.4 Packing Rectangles
- Android Studio系列教程五--Gradle命令详解与导入第三方包
- C语言编程(练习7:数组与指针)
- 常见服务器架构
- 【c++程序】打印杨辉三角
- 鲁大师查验实验室dell电脑信息
- 关于Apple的私有API
- Android Studio系列教程六--Gradle多渠道打包