用C语言编写一个程序,用系统IO提供的函数接口,实现文件的拷贝。
时间: 2024-09-25 15:01:48 浏览: 20
在C语言中,你可以使用标准库中的`fopen`, `fclose`, `fread`, 和 `fwrite` 函数来实现文件的复制。这里是一个简单的示例程序:
```c
#include <stdio.h>
#define BUFFER_SIZE 512
void copy_file(const char* src_filename, const char* dst_filename) {
FILE* src = fopen(src_filename, "rb"); // 以二进制读模式打开源文件
if (src == NULL) {
perror("Error opening source file");
return;
}
FILE* dst = fopen(dst_filename, "wb"); // 以二进制写模式打开目标文件
if (dst == NULL) {
perror("Error opening destination file");
fclose(src);
return;
}
char buffer[BUFFER_SIZE];
size_t bytes_read;
while ((bytes_read = fread(buffer, sizeof(char), BUFFER_SIZE, src)) > 0) { // 持续读取并写入缓冲区
fwrite(buffer, sizeof(char), bytes_read, dst);
}
if (ferror(src) || ferror(dst)) { // 检查是否有错误发生
perror("Error reading or writing files");
}
fclose(src); // 关闭源文件
fclose(dst); // 关闭目标文件
}
int main() {
char src[] = "source.txt";
char dst[] = "destination.txt";
copy_file(src, dst);
printf("File copied successfully.\n");
return 0;
}
```
这个程序首先尝试打开源文件和目标文件,然后使用循环逐块读取源文件的内容,并将其写入到目标文件中,直到文件结束。最后关闭两个文件并报告是否成功。