如果已经到达null终止符,write()会写什么?

Xuf*_*eng 4 c string nul

对于write(fd[1], string, size)- 如果string短于size?会发生什么?

我查看了手册页,但没有明确说明这种情况.我知道,因为read它只会停在那里并阅读任何string内容,但事实并非如此write.那么写什么呢?返回值仍然size是附加null终止符?为什么它不会停止read.

Chr*_*ath 5

当您调用时write(),系统会假定您正在将通用数据写入某个文件 - 它并不关心您是否有字符串.以null结尾的字符串被视为一串非零字节,后跟一个零字节 - 系统将一直写入,直到写入size字节为止.

因此,指定size哪个比你的字符串长可能是危险的.系统可能正在读取超出文件字符串末尾的数据,可能是垃圾数据.