我目前正在编写一个程序,该程序将根据用户给定的缓冲区读取文件,将其写入输出文件,并将继续这样做,直到文件完成。 但是,现在我的输出文件有额外的字符,与原始文件相比,它应该有。我认为这与读写并不总是返回请求的字节数有关。我不确定如何解决这个问题。
现在我只有一个简单的while循环:
while(read(inFD, buff, buf)!= 0)
write(outFD, buff, buf);
buf 是用户给定的缓冲区。
谢谢,如果你能帮忙!
read
手册读取:"成功时,返回读取的字节数"。
您忽略了返回的数字;相反,您假设读取了buf
字节。结果,您的输出文件大小将是buf
的倍数。