CSa*_*awy 1 c copy file garbage
我有这个从infile到outfile的复制代码,问题是在outfile的末尾添加了很多垃圾
ssize_t nread;
int bufsize=512;
char buffer[bufsize];
while ( (nread=read(infile, buffer, bufsize)>0))
{
if( write(outfile, buffer, bufsize)<nread )
{
close(outfile); close(infile); printf("error in write loop !\n\n");
return (-4);
}
}
if( nread == -1) {
printf ("error on last read\n"); return (-5);
}//error on last read /
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?
while ( (nread=read(infile, buffer, bufsize)>0))
Run Code Online (Sandbox Code Playgroud)
应该:
while ( (nread=read(infile, buffer, bufsize)) >0 )
Run Code Online (Sandbox Code Playgroud)
作为> 相比,具有更高的优先级=.
也
write(outfile, buffer, bufsize)
Run Code Online (Sandbox Code Playgroud)
你总是在写bufsize字节数.但是在读操作中不需要读取那么多字节.这可能发生在复制的最后一次迭代中.要解决此问题,您应该写入nread字节数.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |