文件IO操作open,close,read,write,输入./copy copy.c new.c,复制一份copy的文件并重命名为new,用c语言做
时间: 2024-09-18 14:14:11 浏览: 39
在C语言中,进行文件I/O操作通常涉及到`fopen`, `fclose`, `fread`, 和 `fwrite` 函数。以下是使用这些函数完成从`copy.c`文件复制内容到`new.c`的基本步骤:
```c
#include <stdio.h>
// 定义一个大小足够的缓冲区
#define BUFFER_SIZE 4096 // 可调整这个值以适应大文件
int main() {
FILE *input; // 输入文件指针
FILE *output; // 输出文件指针
char buffer[BUFFER_SIZE]; // 存储读取数据的缓冲区
// 打开源文件 "copy.c" 以读取
if ((input = fopen("copy.c", "rb")) == NULL) {
perror("Failed to open input file");
return 1;
}
// 尝试打开目标文件 "new.c" 以写入
if ((output = fopen("new.c", "wb")) == NULL) {
perror("Failed to create output file");
fclose(input);
return 1;
}
// 读取文件并逐块复制至缓冲区
size_t bytesRead;
while ((bytesRead = fread(buffer, 1, BUFFER_SIZE, input)) > 0) {
// 写入缓冲区的内容到输出文件
fwrite(buffer, 1, bytesRead, output);
}
// 检查是否已完全读取源文件
if (feof(input)) {
printf("Successfully copied the file.\n");
} else {
perror("Error reading from input file");
fclose(output);
fclose(input);
return 1;
}
// 关闭两个文件
fclose(input);
fclose(output);
return 0;
}
```
这段代码首先尝试打开`copy.c`文件以读取,并创建一个新的名为`new.c`的文件以写入。然后它会循环读取`copy.c`的内容,每次读取`BUFFER_SIZE`字节,并将这部分数据写入`new.c`。如果整个文件都成功读取了,则说明复制完成。
阅读全文