0

特定のファイルが、boost::serialization によって保存されたバイナリ ファイルであるかどうかを検出する必要があります。いくつかのファイルを見ると、先頭に 16 バイトがあることがわかりました。

0000000 0016 0000 0000 0000 6573 6972 6c61 7a69  | ........serializ
0000010 7461 6f69 3a6e 613a 6372 6968 6576 0009  | ation::archive..

そのようなアーカイブを検出するための信頼できるシーケンスはありますか?

4

1 に答える 1

2

信頼性のある?おそらくそうです、boost::serialization の同じ実装を使用し続ける限り。おそらく、ライブラリの更新間でも。しかし、リファレンス ドキュメントにはファイル マジックのサポートについては言及されていないため、公式には、ファイル ヘッダーのチェックの効果は未定義であり、将来のバージョンでは警告なしで機能しなくなる可能性があります。堅牢にする必要がある場合は、失敗時にスローされたものを逆シリアル化してキャッチすることをお勧めします。したがって、有益なアイコンを表示するクイック ファイル ブラウザーを使用するには、ヘッダー検出を使用してください。バックアップをアーカイブするためのエンタープライズ システムでは、それほど多くはありません。

于 2012-05-16T08:21:40.527 に答える