ヘッダ悩み中

ヘッダフォーマットの統一を考えています。
LZH/ZIPはDOS寄り、tarはUNIX寄りなので、どうしても拡張ヘッダが他方の環境で無駄にみえてしまいます。
もう少しマルチプラットフォームなフォーマットはないかと考えて、ISO 9660のCD-ROMイメージファイルを調べてみました。
適当にググって見つけたサイトはここです。
http://euc.jp/periphs/iso9660.ja.html
複数のプラットフォームを想定しているとはいえ、MS-DOSでの利用が絶対条件だった頃のフォーマットなので、これもDOS寄りでした。


Boost.Filesystemはどうなっているかなぁと、最新の仕様も確認してみました。
Filesystem Library Proposal for TR2 (Revision 2)
これだとパーミッションは取得/設定できないし、最終更新時間以外の時間も扱えません。
最終更新時間の精度も多くの環境では秒以下も扱えるんですが、time_tなのでほとんどの場合秒単位です。
ヘッダを統一するには、ヘッダに含める項目を選択するだけでなく、その精度や表現をどうするかという問題もあるわけです。


Windowsの場合FILETIME構造体が100ナノ秒の精度で、UNIXの場合はナノ秒単位のtimespec構造体が一番精度がよいので、この2つを表現できるデータ型を用意することにします。
LZHやtarのように基本ヘッダは秒精度で、拡張ヘッダではより精度が高いという場合は、秒以下の端数があるかないかで拡張ヘッダのある/なしを決めればよいですね。
なんかいけそうな気がしてきました。