C语言版
代码实现
#include "stdio.h"
#include "stdlib.h"
#define EXIT_FALIURE 1
#define EXIT_SUCCESS 0
int main(int argc, char *argv[])
{
FILE *srcFd = NULL;
FILE *dstFd = NULL;
char ch;
/* 不是三个参数直接退出 */
/* example: cp src dst */
if (argc != 3) {
printf( "format: copy srcfile dstfile.\n");
exit(EXIT_FALIURE);
}
/* 打开源文件 */
srcFd = fopen(argv[1], "r");
if (srcFd == NULL) {
fprintf("open %s fail.\n", argv[1]);
fclose(srcFd);
exit(EXIT_FALIURE);
}
/* 打开拷贝目的地文件 */
dstFd = fopen(argv[2], "w+");
if (dstFd == NULL) {
printf("open %s fail.\n", argv[2]);
fclose(dstFd);
exit(EXIT_FALIURE);
}
/* 从源文件取一个字符,不是结束符就拷贝到目的文件 */
while ((ch = getc(srcFd)) != EOF) {
putc(ch, dstFd);
}
putc("\n", dstFd);
printf("copy done.\n");
fclose(srcFd);
fclose(dstFd);
return 0;
}
编译
这里使用gcc编译出cp可执行程序。
测试
直接用echo创建一个文件,内容是123
然后再拷贝一下,可以看到目标文件是已经拷贝成功了。