在c中更新/覆盖文件而不创建新文件或临时文件

时间:2016-11-10 08:36:31

标签: c file-handling

我正在为文件处理编写一个c代码,其文件格式如下:

Domain1:IP:Port:Id1,Id2,Id3
Domain2:IP:Port:Id1,Id2,

应该可以添加包含新域的新行,并且还可以修改现有域ID。并且使用修改ID我的意思是,可以增加或减少ID的数量,例如在一个操作中我应该能够在上面的示例中将ID4添加到Domain1以及在另一个操作中我应该能够以删除Domain2的ID1为例。

所以我的问题(感谢您的帮助):

  1. 我不想创建临时/新文件并更改名称和删除旧文件。那么我可以读取和写入现有文件吗?怎样才能让它安全? (我尝试了一些更新行的例子(使用fwrite)但我看到它在下一行中删除了一些字符,当我在一些试验中添加更多字符,如ID4和其他奇怪的字符))。任何示例代码?

  2. 此后我还需要使用锁定文件,因此只有一个应该能够一次读写。任何建议/链接赞赏。

  3. 非常感谢。

1 个答案:

答案 0 :(得分:0)

对于附加到文件,您不需要临时文件或任何内容。如果要用等于的字符数替换某些字符,则也不需要临时文件。

如果您想进行任何其他更改内容大小的修改,您需要某种临时缓冲区。临时文件或内存缓冲区。