gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:24:15 25 4
gpt4 key购买 nike

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

我查阅了手册页,但没有明确说明这种情况。我知道对于 read,它会简单地停在那里并读取任何 string,但对于 write 肯定不是这样。那么write在做什么呢?返回值仍然是 size 那么它是否附加了空终止符?为什么它不像 read 那样停止。

最佳答案

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

因此,指定比您的字符串长的 size 可能是危险的。系统很可能正在从您的文件中读取超出字符串末尾的数据,其中可能充满了垃圾数据。

关于c - 如果已经达到空终止符, write() 会写什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22215194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com