对于write(fd[1], string, size)- 如果string短于size?会发生什么?
我查看了手册页,但没有明确说明这种情况.我知道,因为read它只会停在那里并阅读任何string内容,但事实并非如此write.那么写什么呢?返回值仍然size是附加null终止符?为什么它不会停止read.
当您调用时write(),系统会假定您正在将通用数据写入某个文件 - 它并不关心您是否有字符串.以null结尾的字符串被视为一串非零字节,后跟一个零字节 - 系统将一直写入,直到写入size字节为止.
因此,指定size哪个比你的字符串长可能是危险的.系统可能正在读取超出文件字符串末尾的数据,可能是垃圾数据.
| 归档时间: |
|
| 查看次数: |
4095 次 |
| 最近记录: |