#include <stdio.h>
int main(int argc, const char *argv[])
{
if (argc != 3)
{
printf("外部传参错误\n");
return 1;
}
FILE *fp1 = fopen(argv[1], "r");
if (fp1 == NULL)
{
perror("Error opening source file");
return -1;
}
FILE *fp2 = fopen(argv[2], "w");
if (fp2 == NULL)
{
perror("Error opening destination file");
fclose(fp1);
return -1;
}
char s[100];
size_t result;
while ((result = fread(s, sizeof(char), sizeof(s), fp1)) > 0)
{
if (fwrite(s, sizeof(char), result, fp2) != result)
{
perror("Error writing to destination file");
fclose(fp1);
fclose(fp2);
return -1;
}
}
fclose(fp1);
fclose(fp2);
// 重新打开目的地文件以读取内容
fp2 = fopen(argv[2], "r");
if (fp2 == NULL)
{
perror("Error opening destination file for reading");
return -1;
}
while ((result = fread(s, sizeof(char), sizeof(s), fp2)) > 0)
{
fwrite(s, sizeof(char), result, stdout);
}
fclose(fp2);
return 0;
}