我有一个类似于通常使用的学生结构的结构,并且我在一个文件中存储多个记录。我希望能够更新文件内的字段,但我不确定哪种方式最好。
加载内存中的所有记录,进行更改,然后用更改重写文件? 或者制作一个tmp文件,找到要更新的数据将所有数据复制到tmp文件中删除旧文件并将tmp重命名为原来的名称?
欢迎大家提出不同意见! 谢谢!
最佳答案
第一个是如果写入出现问题,则存在文件损坏的风险。
第二个是最安全的,但涉及磁盘上的数据的两个副本。它还需要更多文件权限(删除文件、创建新文件、重命名等)。顺便说一句,在支持它的系统上,您可能希望让重命名操作为您删除原始文件,而不需要单独的删除步骤。
如果文件很大,这两种方法都不切实际。在这种情况下,您可能需要就地更新数据。处理可能的腐败更为复杂——也许需要维护日记。
关于c - 在c中更新文件记录的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8347297/