#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[]) {if (argc != 3) {printf("Usage: %s sourceFile destFile", argv[0]);exit(1);}FILE *srcFp; FILE *desFp; char ch; if ((srcFp = fopen(argv[1], "r")) == NULL) {perror("file: ");exit(1);}if ((desFp = fopen(argv[2], "w")) == NULL) {perror("file: ");exit(1);}while((ch = fgetc(srcFp)) != EOF) {fputc(ch, desFp);}fclose(srcFp);fclose(desFp);return 0;
}
#include <stdio.h>:包含标准输入输出库,以便使用文件操作相关的函数。#include <stdlib.h>:包含标准库,以便使用 exit() 函数终止程序。int main(int argc, char *argv[]):程序的主函数,argc 是命令行参数的数量,argv[] 是命令行参数的数组。if (argc != 3) { printf("Usage: %s sourceFile destFile", argv[0]); exit(1); }:检查命令行参数的数量,确保包括源文件路径和目标文件路径,如果参数数量不正确,打印程序的用法说明并退出程序。FILE *srcFp; 和 FILE *desFp;:定义了两个文件指针,分别用于指向源文件和目标文件。char ch;:定义了一个字符变量,用于临时存储从源文件读取的字符。if ((srcFp = fopen(argv[1], "r")) == NULL) { perror("file: "); exit(1); }:打开源文件以供读取,如果打开失败,则打印错误消息并退出程序。if ((desFp = fopen(argv[2], "w")) == NULL) { perror("file: "); exit(1); }:打开目标文件以供写入,如果打开失败,则打印错误消息并退出程序。while((ch = fgetc(srcFp)) != EOF) { fputc(ch, desFp); }:逐字符从源文件读取,并将每个字符写入目标文件,直到源文件的末尾。fclose(srcFp); 和 fclose(desFp);:关闭源文件和目标文件,释放资源。return 0;:返回0表示程序成功执行完毕。