32位文件拷贝成功,64位失败,文本文件拷贝成功,二进制文件拷贝失败
64位的文件拷贝会失败
#include<stdio.h>
//argc 命令行参数个数 argv 命令行参数数组
//默认就是为1,当前程序文件名(包含路径)
int main(int argc, char* argv[])
{
//从一个文件拷贝到另一个文件,总共只需要两个文件
if (argc != 3)
{
printf("参数错误,请输入两个文件名\n");
return 0;
}
char* srcFile = argv[1]; //待拷贝的文件
char* dstFile = argv[2]; //目标文件
FILE* fpsrc = fopen(srcFile, "r");
if (!fpsrc)
{
perror("src open failed~");
return 0;
}
FILE* fpdst = fopen(dstFile, "w");
if (!fpdst)
{
perror("dst open failed~");
return 0;
}
//从src中读取,写入dst中
char ch = 0;
while ((ch = fgetc(fpsrc)) != EOF)
{
fputc(ch, fpdst);
}
//有可能在这里失败了
if (ferror(fpsrc) || ferror(fpdst))
{
puts("文件出错啦~");
}
else
{
printf("复制完成 1 个文件\n");
}
fclose(fpsrc);
fclose(fpdst);
return 0;
}