C - 动态修改文件 - 这可能吗?

C - dynamically modifying a file - is it possible?

我正在用 C 编写一个小程序,我希望可以选择将数据保存到文件中,然后从该文件中读取它。数据很大,所以我想以某种方式动态写入文件,而不必创建新文件并将修改后的旧文件复制到其中。

这正是我想要做的: 在第一行,我想要 "description" 形式的数据 "%s %s %s ... %s \n" 其中 %s 是一个字符串,第 n 个字符串描述数据第 n+1 行。我想读取文件的第一行,扫描相应的 "description" 字符串,如果不存在,则将其附加到第一行,并在文件的最后一行之后将其对应的数据.

问题是 - 是否可以 "jump" 进入文件中的行而不扫描所有前面的行,我能否以某种方式读取文件的第一行并在读取后附加一些内容?或者在这种情况下这不是可行的方法,C 提供了某种不同的解决方案?

您想要的可以使用 stdiofseek() 完成。只要您知道要移动的字节偏移量,就可以覆盖 and/or append 文件中的任何位置,而无需读取之前的数据或您正在覆盖的数据。你不能轻易做的是插入数据,即打开文件,将其分成两半,然后将数据放在中间。

不太确定这是否是您的意思...