#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表示程序成功执行完毕。