有人能指出我如何将多个文件附加到C中的存档文件的正确方向吗?
以下是我打算做的事情。如果这是正确的方式,你能告诉我(如果没有,你能让我知道哪种方式更好)?非常感谢!
- 使用OPEN打开存档文件(O_RDONLY | O_WRONLY | O_APPEND) - 使用WRITE将常规文件写入存档
答案 0 :(得分:1)
如果您检查是否会看到存档文件的格式,您应该希望有一个名为ar.h
的系统头文件(通常位于/usr/include/
)。
存档中的每个文件都是ar_hdr
结构,后跟文件内容的数据。因此,要将文件附加到存档,只需编写一个正确的结构,然后写入要追加的文件的内容。
答案 1 :(得分:0)
为了将文件(甚至一个文件)添加到存档文件,首先需要知道存档的格式。如果您已经研究过操作系统提供的文件格式的文档(正如this answer中对前一个问题所建议的那样),那么您应该已经了解了不需要的文件格式。问我们该怎么做。
C没有名为OPEN
或WRITE
的函数。有open()
和write()
但是,请注意 O_RDONLY|O_WRONLY
不等同于O_RDWR
。您可以使用write()
将文件内容写入存档的末尾,是的,但是(a)不要忘记先写入文件头,然后(b)你确定< / em>您不需要更新存档的符号表吗? (如果这样做,您可能需要重写整个文件。)
为什么不再使用ar
命令行实用程序?