read

更新时间:2022-11-24 18:24:25 阅读: 评论:0


2022年11月24日发(作者:辽宁现代服务职业技术学院)

read()函数参数理解

在read()函数⾥,有Linux给出的定义

NAME

read-readfromafiledescriptor

#include

ssize_tread(intfd,void*buf,size_tcount);

fd:⽂件描述符,⽤来指向要操作的⽂件的⽂件结构体

buf:⼀块内存空间

count:希望读取的字节数

返回值表⽰实际读到的字节数(字符串结束符'0'不算)

错误⽤法:

fd=open("./",O_RWONLY)//以只读的⽅式打开⽂件

char*buf;

intn;

count=1024;

n=read(fd,buf,count);

这⾥这种写法是错误的,因为buf现在是在栈⾥的⼀个变量,并没有开辟真正的空间,如果此时讲buf输出,buf存放的是⼀个垃圾值,并没

有指向有效的内存的空间,

在使⽤数组指针的时候要先动态的给数组指针分配空间,

所以,上⾯的代码对于buf的改动可以有两种形式

1./在堆中先给buf开辟空间,使buf指向⼀块有效的内存空间

buf=malloc(count*sizeof(char));//这⾥是buf指向⼀块⼤⼩为count的空间

2.重新定义,在定义的时候,就给buf开辟好内存空间,这⾥注意,buf中实际可以存放1023个字节,'0'结束位占掉⼀个字节

bufcharbuf[1024];

再使⽤read()

n=read(fd,buf,count);

就没有问题了

本文发布于:2022-11-24 18:24:25,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/13476.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:stink
下一篇:okay什么意思
标签:read
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图