如何在linux中以编程方式编辑文件?这似乎是一个非常基本的问题。我很惊讶地发现,目前我没有办法做到这一点。
我带了一个文件。我想编辑它。
从手册页中,我认为"a+"模式将使我能够编辑文件,但似乎我们只能在文件末尾添加它,如果我们希望对文件的初始部分进行更改,则不能使用它。
我想更新一些信息,说一个名字在头一个自定义对象我创建,我怎么能做到程序化?
我试着:
FILE *fp = fopen(path, "a+");
fseek(fp, DESIRED_OFFSET, SEEK_SET);
fwrite("KOLAVERIDI", 10, 1, fp);
fclose(fp);
我想,seek可以胜任这项工作。但是,就像手册页上写的
a+打开读取和追加(在文件末尾写入).
它总是附加在文件的末尾(尽管我在fwrite()之前寻求不同的偏移量)。
所以我的问题基本上是我如何在C中编辑/更新文件?
如果您希望能够在文件的中间写入,则需要以"扩展"读取模式打开文件,使用"r+"
.
请注意,在文件中间写入将覆盖在该位置的内容。它不会插入您写入的数据。
你必须用
打开你需要的文件fopen(path, "r+");
这样你可以打开它来写和读