C语言中的read()函数会导致溢出吗?

时间:2019-05-12 23:42:25

标签: c

如果缓冲区数组的缓冲区大小为100,并且我使用read读取了一个文件,而我读取了100个字节,那么由于没有空终止字节,是否可能发生溢出?我正在读取文件,然后写入标准输出。

int incoming_bytes = read(filedes, buffer, 100);
write(1, buffer, incoming_bytes);

1 个答案:

答案 0 :(得分:1)

read()write()不适用于字符串,但适用于缓冲区,因此它们不需要知道其内容,而只需要知道它们的大小。

只要您仅使用将write插入stdout的缓冲区,就不会出现任何溢出问题。

'\0'仅用于字符串。

如果您以后将该缓冲区视为字符串,则可能会出现问题。在这种情况下,您很可能会超载。