文件io操作opencloseread和write函数详解

文件io操作opencloseread和write函数详解

ID:34472290

大小:93.17 KB

页数:9页

时间:2019-03-06

文件io操作opencloseread和write函数详解_第1页
文件io操作opencloseread和write函数详解_第2页
文件io操作opencloseread和write函数详解_第3页
文件io操作opencloseread和write函数详解_第4页
文件io操作opencloseread和write函数详解_第5页
资源描述:

《文件io操作opencloseread和write函数详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、文件I/O操作open(),close(),read()和write()函数详解1.open()函数功能描述:用于打开或创建文件,在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。所需头文件:#include,#include,#include函数原型:intopen(constchar*pathname,intflags,intperms)参数:pathname:被打开的文件名(可包括路径名如"dev/ttyS0")flags:文件打开方式,O_RDONLY:以只读方式打开文件O_WRONLY

2、:以只写方式打开文件O_RDWR:以读写方式打开文件O_CREAT:如果改文件不存在,就创建一个新的文件,并用第三个参数为其设置权限O_EXCL:如果使用O_CREAT时文件存在,则返回错误消息。这一参数可测试文件是否存在。此时open是原子操作,防止多个进程同时创建同一个文件O_NOCTTY:使用本参数时,若文件为终端,那么该终端不会成为调用open()的那个进程的控制终端O_TRUNC:若文件已经存在,那么会删除文件中的全部原有数据,并且设置文件大小为0O_APPEND:以添加方式打开文件,在打开文件的同时,文件指针指向文件的末尾,即将写入的数据添加到文件的末尾O_N

3、ONBLOCK:如果pathname指的是一个FIFO、一个块特殊文件或一个字符特殊文件,则此选择项为此文件的本次打开操作和后续的I/O操作设置非阻塞方式。O_SYNC:使每次write都等到物理I/O操作完成。O_RSYNC:read等待所有写入同一区域的写操作完成后再进行在open()函数中,falgs参数可以通过“

4、”组合构成,但前3个标准常量(O_RDONLY,O_WRONLY,和O_RDWR)不能互相组合。perms:被打开文件的存取权限,可以用两种方法表示,可以用一组宏定义:S_I(R/W/X)(USR/GRP/OTH),其中R/W/X表示读写执行权限,USR

5、/GRP/OTH分别表示文件的所有者/文件所属组/其他用户,如S_IRUUR

6、S_IWUUR

7、S_IXUUR,(-rex------),也可用八进制800表示同样的权限返回值:成功:返回文件描述符失败:返回-1 2.close()函数功能描述:用于关闭一个被打开的的文件所需头文件: #include函数原型:intclose(intfd)参数:fd文件描述符函数返回值:0成功,-1出错3.read()函数功能描述:从文件读取数据。所需头文件: #include函数原型:ssize_tread(intfd,void*buf,size_

8、tcount);参数:  fd: 将要读取数据的文件描述词。buf:指缓冲区,即读取的数据会被放到这个缓冲区中去。count:表示调用一次read操作,应该读多少数量的字符。返回值:返回所读取的字节数;0(读到EOF);-1(出错)。以下几种情况会导致读取到的字节数小于 count:   A.读取普通文件时,读到文件末尾还不够 count字节。例如:如果文件只有30字节,而我们想读取100字节,那么实际读到的只有30字节,read函数返回30。此时再使用read函数作用于这个文件会导致read返回0。  B.从终端设备(terminaldevice)读取时,一般情况下每次

9、只能读取一行。  C.从网络读取时,网络缓存可能导致读取的字节数小于count字节。  D.读取pipe或者FIFO时,pipe或FIFO里的字节数可能小于 count。  E.从面向记录(record-oriented)的设备读取时,某些面向记录的设备(如磁带)每次最多只能返回一个记录。  F.在读取了部分数据时被信号中断。读操作始于cfo。在成功返回之前,cfo增加,增量为实际读取到的字节数。4.write()函数功能描述:向文件写入数据。所需头文件: #include函数原型:ssize_twrite(intfd,void*buf,size_tc

10、ount);返回值:写入文件的字节数(成功);-1(出错)功能:write函数向filedes中写入 count字节数据,数据来源为buf。返回值一般总是等于count,否则就是出错了。常见的出错原因是磁盘空间满了或者超过了文件大小限制。对于普通文件,写操作始于cfo。如果打开文件时使用了O_APPEND,则每次写操作都将数据写入文件末尾。成功写入后,cfo增加,增量为实际写入的字节数。1.lseek()函数 功能描述:用于在指定的文件描述符中将将文件指针定位到相应位置。所需头文件: #include,#i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。