C语言打开文件并且覆盖写 用Linux open
时间: 2024-10-04 07:04:57 浏览: 30
在C语言中,要打开一个文件并对其进行覆盖写入,你可以使用`fopen()`函数来打开文件,然后使用`fwrite()`函数来写入数据,如果需要覆盖原有内容,可以先检查文件是否已存在,如果存在则使用`fclose()`关闭后再以写模式(`"w"`或`"wb"`,取决于是否包含二进制操作)重新打开。
下面是一个简单的示例:
```c
#include <stdio.h>
int main() {
char filename[] = "example.txt"; // 文件名
char data[] = "Hello, this is a test.\n"; // 要写入的数据
// 检查文件是否存在,若存在则删除后再写入
FILE *fp;
if ((fp = fopen(filename, "r")) != NULL) {
fclose(fp); // 关闭读取模式的文件
remove(filename); // 删除文件
}
// 以写入模式打开文件,如果失败会返回NULL
fp = fopen(filename, "w");
if (fp == NULL) {
printf("Error opening the file!\n");
return 1;
}
// 写入数据
size_t written = fwrite(data, sizeof(char), strlen(data), fp);
if (written != strlen(data)) {
printf("Failed to write all data to the file!\n");
fclose(fp);
return 1;
}
fclose(fp); // 成功写入后记得关闭文件
printf("Data has been successfully written to the file.\n");
return 0;
}
```
阅读全文