#include int main(int argc, char *args[])
{
// 定义一个变量作为函数的返回值
int return_value = 0;
// 判断用户输入的参数是否符合要求
if (argc < 3)
{
printf("Message : Please input more arguments.\n");
return_value = -1;
return return_value;
}
// 得到文件名称:desfilename是目标文件,srcfilename是源文件
const char *srcfilename = args[1];
const char *desfilename = args[2];
// 打开文件
FILE *psrc = fopen(srcfilename, "r");
FILE *pdes = fopen(desfilename, "w");
// 判断打开文件是否成功
if (psrc == NULL)
{
printf("Message : %s open failed, %s\n", srcfilename, strerror(errno));
return_value = -1;
return return_value;
}
if (pdes == NULL)
{
printf("Message : %s open failed, %s\n", desfilename, strerror(errno));
return_value = -1;
return return_value;
}
// 创建文件缓冲区
char buf[1024];
// 循环读取并复制文件
while (1)
{
// 清空缓冲区内存
memset(buf, 0, sizeof(buf));
// 读取文件
size_t rc = fread(buf, sizeof(char), sizeof(buf), psrc);
// 判断是否读取到文件的末尾
if (rc <= 0)
break;
// 将缓冲区中的内容写入到文件
fwrite(buf, sizeof(char), rc, pdes);
}
// 关闭文件
fclose(psrc);
fclose(pdes);
return return_value;
}