基本的に、指定されたファイル名のリストのアーカイブ ファイルを作成するプログラムを C で作成しています。ar
これは、Linuxのコマンドにかなり似ています。アーカイブ ファイルは次のようになります。
!<arch>
file1.txt/ 1350248044 45503 13036 100660 28 `
hello
this is sample file 1
file2.txt/ 1350512270 45503 13036 100660 72 `
hello
this is sample file 2
this file is a little larger than file1.txt
しかし、アーカイブからファイルを抽出するのに苦労しています。ユーザーが抽出したいとしましょうfile1.txt
。ファイル名(この場合は file1.txt)のインデックス/場所を取得し、 58 文字をスキップしてファイルのコンテンツに到達し、コンテンツを読み取り、新しいファイルに書き込む必要があります。だからここに私の質問があります:
1) アーカイブ ファイル内のファイル名のインデックス/場所を取得するにはどうすればよいですか? 重複するファイル名は許可されていないことに注意してください。したがって、2 つの異なるインデックスを持つことを心配する必要はありません。
2) ファイルを読み取るときに、どうすれば複数の文字 (この場合は 58) をスキップできますか?
3) ファイルの内容がいつ終了するかを知るにはどうすればよいですか? file2.txt/
つまり、コンテンツを読み取ってヘッダーの直前で停止する必要があります。