tar_file_sink
ustar形式とGNU形式での出力を実装しました。
ustar_file.hppの差分
tar_file.hppの差分
pax形式の出力はまだ実装していません。
を考慮して、既定フォーマットはgnuにしました。
Googleで調べてもほとんどヒットしないところを見ると、pax形式はあまり使われていないみたいですね。
使い方は、サンプルを参照してください。
面倒なのでハードリンクには対応していません。
シンボリックリンクと違い、リンク元/先という概念は存在しないため、
- stat::st_nlinkからハードリンクを割り出す
- 書き込んだハードリンクの名前とiノードを覚えておく
- 未登録のハードリンクは通常のファイルとして書き出す
- 登録済みハードリンクは既に書き込んだファイルへのリンクとして書き出す
という作業が必要になります。