编写一个简单的文件复制程序,利用程序执行参数指定源文件名和目的文件名,如: ./copy source.jpg destiny.jpg int main(int argc, char *argv) argv[1] argv[2] 即在执行时将源文件source.jpg复制到文件destiny.jpg中。打开其中任一文件时应有相应报错显示并退出
时间: 2024-03-10 19:46:34 浏览: 157
python-根据录入文件名,复制出来一个新的文件,新的文件名为: 原文件名-副本.源文件后缀
好的,我会根据您的要求回答问题。关于您的问题,以下是一个简单的文件复制程序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 4096
int main(int argc, char *argv[]) {
// 检查参数个数
if (argc != 3) {
printf("Usage: %s <source file> <destination file>\n", argv[0]);
exit(EXIT_FAILURE);
}
// 打开源文件和目的文件
FILE *src_file = fopen(argv[1], "rb");
if (src_file == NULL) {
printf("Error: Failed to open source file %s\n", argv[1]);
exit(EXIT_FAILURE);
}
FILE *dst_file = fopen(argv[2], "wb");
if (dst_file == NULL) {
printf("Error: Failed to open destination file %s\n", argv[2]);
fclose(src_file);
exit(EXIT_FAILURE);
}
// 复制文件
char buffer[BUFFER_SIZE];
size_t n;
while ((n = fread(buffer, 1, BUFFER_SIZE, src_file)) > 0) {
if (fwrite(buffer, 1, n, dst_file) != n) {
printf("Error: Failed to write to destination file %s\n", argv[2]);
fclose(src_file);
fclose(dst_file);
exit(EXIT_FAILURE);
}
}
// 关闭文件
fclose(src_file);
fclose(dst_file);
printf("File copied successfully from %s to %s\n", argv[1], argv[2]);
return 0;
}
```
这个程序使用了 C 标准库中的 fread() 和 fwrite() 函数来读取和写入文件。在复制文件之前,它会检查参数个数是否正确,并尝试打开源文件和目的文件。如果打开文件失败,程序会输出相应的错误信息并退出。如果复制文件的过程中出现错误,程序也会输出错误信息并退出。如果一切顺利,程序会输出一条成功的消息并退出。
希望这个示例代码能够帮助您完成文件复制程序的编写。
阅读全文