**
实现cp命令的功能
**
#include <stdio.h>
#include "teacher.h"
int main(int argc,const char* argv[])
{
//main函数参数中argc代表了命令行参数的总个数
//argv代表了每个参数字符串的首地址
if(3 != argc)
{
printf("User:cp src dest\n");
return 0;
}
//以只读方式打开源文件src
FILE* src = fopen(argv[1],"r");
if(NULL == src)
{
printf("源文件不存在,请检查命令\n");
return 0;
}
//以只写方式创建目标文件dest
FILE* dest = fopen(argv[2],"w");
//如果目标文件已存在
if(dest)
{
printf("目标文件已存在,是否覆盖(y/n)?\n");
char cmd = gechar();
//停止拷贝
if('y'!=cmd && cmd!='Y')
{
printf("停止拷贝!\n");
return 0;
}
//重新创建目标文件
else
{
dest = fopen(argv[2],"w");
}
}
if(NULL == dest)
{
printf("创建文件失败,请检查路径\n");
return 0;
}
//设置缓冲区存放源文件内容
char buf[255] = {};
//定义成功读取到的次数
int ret = 0;
//如果成功读取到的次数大于0,即成功读取到了源文件中数据
while(0 <(ret = fread(buf,1,sizeof(buf),src)))
{
//将缓冲区中内容写入目标文件中
fwrite(buf,1,ret,dest);
}
//关闭文件
fclose(src);
fclose(dest);
}