<分区>
Possible Duplicate:
C write in the middle of a binary file without overwriting any existing content
我正在编写一个程序,偶尔需要在二进制文件的开头插入 1-64k 的数据。 POSIX API/Linux ABI 没有 insert(fd,buf,len)
函数调用。最有效的方法是什么?
<分区>
Possible Duplicate:
C write in the middle of a binary file without overwriting any existing content
我正在编写一个程序,偶尔需要在二进制文件的开头插入 1-64k 的数据。 POSIX API/Linux ABI 没有 insert(fd,buf,len)
函数调用。最有效的方法是什么?
最佳答案
您的选择是:
(2) 的优点是它不会破坏指向原始文件的符号链接(symbolic link)或多个链接。缺点(如 Keith Thompson 所述)是如果中断,您将丢失原始文件。
(1) 的缺点是,如果您需要保留链接数量并通过符号链接(symbolic link)进行操作,则必须将新文件复制回旧文件,因此需要进行更多复制。优点是复制比较简单,到最后才破坏原文件。
选项 (2) 的代码还有另一个问题 — Write in the middle of a binary file without overwriting any existing content .在(二进制)文件的开头插入只是在文件中间插入的特定(甚至不是特殊)情况。
关于c - 使用 Linux ABI (POSIX),在文件开头插入字节的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993082/