read 最大读取sizeof(buffer)个字节

read 最大读取sizeof(buffer)个字节

https://img1.sycdn.imooc.com//climg/6361df370950b10013490480.jpg


read 最大读取sizeof(buffer)个字节,那如果文件大小大于sizeof(buffer),那会不会导致buffer前sizeof(buffer)全部被晒满,最后没有'\0'?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
山行老师 2022-11-02 16:11:33
会,函数read( )读了n个字节到数组buffer中,这个时候数组里面有没有\0已经不重要了,因为函数read( )已经把n返回给你了。
顺带说一句读文件不等于读字符串,文件中可能有若干个0x00细节也说不定,也就是说读到数组buffer中的数据可能有很多个\0,所以知道有效长度n就可以了;
  • 提问者 佚__名 #1

    buffer最后不是\0不是会乱码的吗

    2022-11-02 16:18:03
  • 乱码是针对字符数据的,文件中的数据不一定是字符,有可能是数值数据;
    读文件不是等价于读字符串,如果你非要打印读buffer中的内容,那就得自己限定打印长度为函数read( )的返回值n。

    2022-11-02 20:48:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师