📅  最后修改于: 2023-12-03 15:27:09.386000             🧑  作者: Mango
在C语言中,我们可以用标准库函数fopen
和fread
、fwrite
等函数来进行文件的读取和写入操作。
以下是一个将源文件复制到目标文件的程序示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *src_file, *dst_file; // 定义源文件和目标文件的句柄
char buffer[1024]; // 定义读写缓冲区
size_t size; // 定义读取数据的长度
src_file = fopen("source.file", "rb"); // 打开源文件,以二进制方式读取
if (src_file == NULL) {
perror("Fail to open the source file.");
exit(EXIT_FAILURE);
}
dst_file = fopen("dest.file", "wb"); // 打开目标文件,以二进制方式写入
if (dst_file == NULL) {
fclose(src_file); // 如果打开目标文件失败,需要关闭源文件
perror("Fail to open the destination file.");
exit(EXIT_FAILURE);
}
while ((size = fread(buffer, 1, sizeof(buffer), src_file)) > 0) { // 从源文件读取数据
fwrite(buffer, 1, size, dst_file); // 将读取数据写入目标文件
}
fclose(src_file); // 关闭文件
fclose(dst_file);
return 0;
}
这个程序将会读取当前目录下名为source.file
的文件,并将其内容复制到名为dest.file
的文件中。
请注意以下几点:
fopen
函数可以用来打开文件,需要传入两个参数,第一个是文件名,第二个是打开方式。打开方式既可以是"r"
(读取),也可以是"w"
(写入),还可以在打开方式后加上"b"
(二进制方式)和"t"
(文本方式)等修饰符。fread
,其参数依次为读取缓冲区的地址、单个读取数据的字节数、读取数据的长度和文件句柄。读取成功后,函数返回读取的数据长度。如果读取失败或者已经到达文件结尾,函数返回值都为0。fwrite
,其参数依次为写入缓冲区的地址、单个写入数据的字节数、写入数据的长度和文件句柄。写入成功后,函数返回值为写入数据的长度。以上就是一个简单的文件复制程序的实现。当然,实际的程序可能会包含更加完备的错误处理和文件打开方式控制等。