#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h> #define BUF_SIZE 1024 void cp(char *filename1, char *filename2)
{
int fd1 = open(filename1, O_RDONLY);
if (fd1 == -1) {
printf("fail to open %s:%s\n", filename1, strerror(errno));
return;
}
int fd2 = open(filename2, O_WRONLY | O_APPEND | O_CREAT, 0664);
char szBuf[BUF_SIZE];
int bytes;
while(1) {
memset(szBuf, 0, BUF_SIZE);
bytes = read(fd1, szBuf, BUF_SIZE);
if (bytes == 0) {
break;
}
write(fd2, szBuf, bytes);
}
} int main(int argc, char **argv)
{
if (argc != 3 || !strcmp(argv[1], "--help")) {
printf("Usage:%s [Src] [Dest]\n", argv[0]);
printf("\tSrc:Source file\n");
printf("\tDest:Destin file\n");
return 0;
}
cp(argv[1], argv[2]);
return 0;
}

待加强:如果要复制一个包含空洞(连续的空字节)的普通文件,并且要求目标文件的空洞与源文件保持一致。

最新文章

  1. Linked List Start!
  2. html框架—多对话框(相同id)处理
  3. 自定义cell
  4. 解决在.ashx文件中判断Session 总是NULL的方法
  5. [cocos2d]场景切换以及切换进度显示
  6. Linux 常用命令使用方法大搜刮(转)
  7. 几个关于JPEGLIB库的博客
  8. 团队作业8——第二次项目冲刺(Beta阶段)Day2--5.19
  9. 【Dijkstra堆优化】洛谷P2243电路维修
  10. lib和dll文件的初了解
  11. Django学习笔记之URL与视图cookie和session
  12. ThreeJS笔记(一)
  13. 17.4-uC/OS-III消息管理(任务消息队列使用)
  14. 阿里巴巴Web前端面试的一道JS题目,求解答!!!
  15. BZOJ2794[Poi2012]Cloakroom——离线+背包
  16. 微信小程序web-view使用测试总结
  17. 关于Vector,map等迭代器问题
  18. Android -- EventBus使用
  19. .net获取当前url各种属性(文件名、参数、域名、端口等)的方法(转)
  20. css display&amp;&amp;hidden

热门文章

  1. thinkphp 利用GD库在图片上写文字
  2. HTML+jq简单轮播图
  3. Python支付接口汇总大全(包含微信、支付宝等)
  4. mysql索引建立原则
  5. Java学习笔记十八:Java面向对象的三大特性之封装
  6. linux 搭建ss
  7. NUCLEO-L053R8 RCC时钟树 MCO输出
  8. 5 多进程copy文件
  9. OKVIS(一)初始化流程及代码结构
  10. Java 快速排序讲解