linuc c 将一个文件拷贝到两个文件
时间: 2024-09-26 07:13:37 浏览: 33
在Linux C语言中,将一个文件复制到其他两个文件可以使用标准库函数`fopen()`, `fwrite()`, 和 `fclose()`。假设你想要将名为`source_file.txt`的文件复制到`destination1.txt`和`destination2.txt`中,以下是一个简单的示例:
```c
#include <stdio.h>
#define BUFFER_SIZE 512
int main() {
FILE *src, *dst1, *dst2;
// 打开源文件和目标文件
src = fopen("source_file.txt", "rb"); // "r"表示读模式,"b"表示二进制
dst1 = fopen("destination1.txt", "wb");
dst2 = fopen("destination2.txt", "wb");
if (src == NULL || dst1 == NULL || dst2 == NULL) {
perror("Failed to open file(s)");
return 1;
}
char buffer[BUFFER_SIZE];
// 读取源文件直到结束
while (!feof(src)) {
size_t bytes_read = fread(buffer, 1, BUFFER_SIZE, src);
if (bytes_read > 0) {
// 写入两个目标文件
fwrite(buffer, bytes_read, 1, dst1);
fwrite(buffer, bytes_read, 1, dst2);
}
}
// 关闭所有文件
fclose(src);
fclose(dst1);
fclose(dst2);
printf("Copy successful.\n");
return 0;
}
```
在这个例子中,我们用一个`BUFFER_SIZE`大小的缓冲区连续地从`src`文件读取数据,然后同时写入到`dst1`和`dst2`文件中,直到读取完整个源文件。
阅读全文