采用文件io编程的方式,实现一个文件拷贝功能,给定一个源文件,读取源文件中的所有数据,将其写入到另一个目标文件中,效果: ./app "src_file" "target_file" 用c语言写
时间: 2024-09-22 19:09:47 浏览: 54
java将一个目录下的所有数据复制到另一个目录下
在C语言中,你可以使用标准库函数如`fopen()`, `fclose()`, `fread()`, 和 `fwrite()` 来实现文件的复制功能。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义复制文件的函数
void copy_file(const char* src_filename, const char* dst_filename) {
FILE* src = fopen(src_filename, "rb"); // 打开源文件以二进制模式读取
FILE* dst = fopen(dst_filename, "wb"); // 打开目标文件以二进制模式写入
if (src == NULL || dst == NULL) { // 检查文件是否打开成功
perror("Error opening files");
return;
}
char buffer[BUFSIZ]; // 用于临时存储读取的数据
size_t bytes_read;
while ((bytes_read = fread(buffer, 1, BUFSIZ, src)) > 0) {
fwrite(buffer, 1, bytes_read, dst); // 将数据写入目标文件
}
fclose(src);
fclose(dst);
if (ferror(src) || ferror(dst)) {
perror("Error copying file");
} else {
printf("File copied successfully.\n");
}
}
int main(int argc, char *argv[]) {
if (argc != 3) {
fprintf(stderr, "Usage: %s \"src_file\" \"target_file\"\n", argv[0]);
return 1;
}
copy_file(argv[1], argv[2]);
return 0;
}
```
运行这个程序,可以指定源文件(`src_file`)和目标文件(`target_file`),例如:
```sh
./app src.txt dest.txt
```
这个程序会将`src.txt`的内容复制到`dest.txt`。
阅读全文