用C语言复制一份copy文件并重新命名为new。只能用open read wite close函数
时间: 2024-09-09 08:11:25 浏览: 154
在C语言中,你可以使用`fopen`、`fread`、`fwrite`和`fclose`等文件操作函数来复制文件并重新命名。下面是一个简单的示例,展示如何实现这个功能:
```c
#include <stdio.h>
#define BUFFER_SIZE 512
void copy_file(char *src_name, char *dst_name) {
FILE *src = fopen(src_name, "rb");
if (src == NULL) {
perror("Error opening source file");
return;
}
FILE *dst = fopen(dst_name, "wb");
if (dst == NULL) {
perror("Error creating destination file");
fclose(src);
return;
}
char buffer[BUFFER_SIZE];
size_t bytes_read;
// Read from source and write to destination in chunks
while ((bytes_read = fread(buffer, 1, BUFFER_SIZE, src)) > 0) {
fwrite(buffer, 1, bytes_read, dst);
}
if (ferror(src) || ferror(dst)) {
perror("Error reading or writing files");
fclose(src);
fclose(dst);
} else {
printf("File copied successfully.\n");
}
fclose(src);
fclose(dst);
}
int main() {
char src[] = "oldfile.txt";
char new[] = "newfile.txt";
copy_file(src, new);
return 0;
}
```
在这个例子中,我们首先打开源文件以读取模式(`"rb"`),然后以写入模式打开目标文件(`"wb"`)。接着,我们读取源文件的块,并将内容写入到目标文件中。最后关闭两个文件。
注意:这个程序假设源文件可以完全读入内存。如果文件非常大,你需要考虑使用循环和适当的数据结构如`size_t offset`来处理。
阅读全文
相关推荐
















