- 论坛徽章:
- 0
|
代码大致是这样的, 简单的循环:
while(1){
/* file1读 */
memset(buf, 0, sizeof(buf));
len = read(fd1, buf, sizeof(buf));
if(len < 0){
retcode = -1;
break;
}else if(len == 0){
break;
}
/* file2写 */
ret = write(fd2, buf, len);
if(ret < 0){
retcode = -1;
break;
}
}
/* 结束关闭 */
close(fd1);
close(fd2);
--------------------------------------------------------------------------------------------------------------------------------------
问题:
在windows系统进行大文件拷贝的时候, 出现如下现象:
1.程序一直在运行, 磁盘空间也一直在减少(应该正在拷贝), 但是通过资源管理器发现目标文件大小一直为0, 等到磁盘大小减少到一定值的时候, 磁盘大小突然又复原了, 就这样循环着, 减少->复原->减少...
2.我用ctrl+c强行结束程序, 目标文件大小变化了, 显示为被拷贝过去的大小.
我晕啊, 谁知道的 ?是不是有关缓存或者阻塞问题的 ?谢谢!! |
|