C++中read和write函数
#include
ssize_tread(intfiledes,void*buf,size_tnbytes);
返回值:读取到的字节数;0(读到EOF);-1(出错)
read函数从filedes指定的已打开⽂件中读取nbytes字节到buf中。以下⼏种情况会导致读取到的字节数⼩于nbytes:
A.读取普通⽂件时,读到⽂件末尾还不够nbytes字节。例如:如果⽂件只有30字节,⽽我们想读取100字节,那么实际读到的只有30
字节,read函数返回30。此时再使⽤read函数作⽤于这个⽂件会导致read返回0。
B.从终端设备(terminaldevice)读取时,⼀般情况下每次只能读取⼀⾏。
C.从⽹络读取时,⽹络缓存可能导致读取的字节数⼩于nbytes字节。
D.读取pipe或者FIFO时,pipe或FIFO⾥的字节数可能⼩于nbytes。
E.从⾯向记录(record-oriented)的设备读取时,某些⾯向记录的设备(如磁带)每次最多只能返回⼀个记录。
F.在读取了部分数据时被信号中断。
读操作始于cfo。在成功返回之前,cfo增加,增量为实际读取到的字节数。
#include
ssize_twrite(intfiledes,constvoid*buf,size_tnbytes);
返回值:写⼊⽂件的字节数(成功);-1(出错)
write函数向filedes中写⼊nbytes字节数据,数据来源为buf。返回值⼀般总是等于nbytes,否则就是出错了。常见的出错原因是磁盘空
间满了或者超过了⽂件⼤⼩限制。
对于普通⽂件,写操作始于cfo。如果打开⽂件时使⽤了O_APPEND,则每次写操作都将数据写⼊⽂件末尾。成功写⼊后,cfo增加,增
量为实际写⼊的字节数。
本文发布于:2022-12-02 23:56:43,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/40996.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |