// 使用系统调用实现cp命令 // 1. 打开源文件 // 2. 创建目标文件 // 3. 循环读取源文件,写入目标文件 // 4. 关闭文件 #include #include #include #include int main(int argc, char *argv[]) { int srcfd, dstfd; char buf[1024]; int len; if (argc < 3) { printf("./a.out srcfile dstfile\n"); exit(1); } // 打开源文件 srcfd = open(argv[1], O_RDONLY); if (srcfd < 0) { perror("open"); exit(1); } // 创建目标文件 dstfd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0664); if (dstfd < 0) { perror("open"); exit(1); } // 循环读取源文件,写入目标文件 while ((len = read(srcfd, buf, sizeof(buf))) > 0) { write(dstfd, buf, len); } // 关闭文件 close(srcfd); close(dstfd); return 0; } // ./a.out srcfile dstfile