如果缓冲区数组的缓冲区大小为100,并且我使用read读取了一个文件,而我读取了100个字节,那么由于没有空终止字节,是否可能发生溢出?我正在读取文件,然后写入标准输出。
int incoming_bytes = read(filedes, buffer, 100);
write(1, buffer, incoming_bytes);
答案 0 :(得分:1)
read()
和write()
不适用于字符串,但适用于缓冲区,因此它们不需要知道其内容,而只需要知道它们的大小。
只要您仅使用将write
插入stdout
的缓冲区,就不会出现任何溢出问题。
'\0'
仅用于字符串。
如果您以后将该缓冲区视为字符串,则可能会出现问题。在这种情况下,您很可能会超载。