pax for tar_file_sink
pax形式での出力にも対応しました。
ustar_file.hppの差分
tar_file.hppの差分
以前書いたとおり、paxの拡張ヘッダのフォーマットは、
"%d %s=%s\n", <length>, <keyword>, <value>
です。
出力時に面倒くさいのは<length>が、それ自身を含むことです。
例えば、"%s=%s\n"の部分が8バイトの"key=val\n"だとすると、長さの桁が増えるため、
10 key=val\n
でなく、
11 key=val\n
になります。
なんでこんなややこしいフォーマットになっているかは知りません。
その他、修正箇所。
- pax形式拡張ヘッダのmtime,atime,ctimeの読み書き
- 負のuid/gidの読み書き
これでtarの実装はほぼ終わりです。
次はzipいきますかね。