将文件附加到C中的存档末尾

时间:2013-07-19 18:07:31

标签: c operating-system append

有人能指出我如何将多个文件附加到C中的存档文件的正确方向吗?

以下是我打算做的事情。如果这是正确的方式,你能告诉我(如果没有,你能让我知道哪种方式更好)?非常感谢!

- 使用OPEN打开存档文件(O_RDONLY | O_WRONLY | O_APPEND) - 使用WRITE将常规文件写入存档

2 个答案:

答案 0 :(得分:1)

如果您检查是否会看到存档文件的格式,您应该希望有一个名为ar.h的系统头文件(通常位于/usr/include/)。

存档中的每个文件都是ar_hdr结构,后跟文件内容的数据。因此,要将文件附加到存档,只需编写一个正确的结构,然后写入要追加的文件的内容。

答案 1 :(得分:0)

为了将文件(甚至一个文件)添加到存档文件,首先需要知道存档的格式。如果您已经研究过操作系统提供的文件格式的文档(正如this answer中对前一个问题所建议的那样),那么您应该已经了解了不需要的文件格式。问我们该怎么做。

C没有名为OPENWRITE的函数。有open()write()但是,请注意 O_RDONLY|O_WRONLY不等同于O_RDWR 。您可以使用write()将文件内容写入存档的末尾,是的,但是(a)不要忘记先写入文件头,然后(b)你确定< / em>您不需要更新存档的符号表吗? (如果这样做,您可能需要重写整个文件。)

为什么不再使用ar命令行实用程序?