#include <stdio.h>
#include <stdlib.h>
#define BUFFSIZE 1024
/*
* 文件拷贝函数
* ./mycp 源文件名 目的文件名
*/
int main(int argc, char *argv[]) {
FILE *fps = NULL;
FILE *fpd = NULL;
char buf[BUFFSIZE];
//判断参数够不够3个
if (argc < 3) {
fprintf(stderr, "No enough parameters.\nUsage: %s <src_file_name> <dest_file_name>\n",argv[0]);
exit(1);
}
//打开源文件
fps = fopen(argv[1], "r");
//判断源文件是否打开成功
if (fps == NULL) {
perror("fopen()");
exit(1);
}
//打开目的文件
fpd = fopen(argv[2], "w");
//判断目的文件是否打开成功
if (fpd == NULL) {
//如果fps成功,fpd失败,这里释放了fps,可以防止内存泄漏
fclose(fps);
perror("fopen()");
exit(1);
}
//如果fgets返回一个空指针,则读取失败或读到文件末尾了
while (fgets(buf, BUFFSIZE, fps) != NULL) {
fputs(buf, fpd);
}
//关闭目的文件
fclose(fpd);
//关闭源文件
fclose(fps);
//退出程序
exit(0);
}
通过标准IO实现文件拷贝
最新推荐文章于 2024-07-02 22:30:41 发布