はい、ファイルに何かを追加すると、その内容が変更されます。場合によってはこれはあまり重要ではないかもしれませんが、汎用ソリューションでは決してそれに頼るべきではありません。
あなたの特定のケースでは、ファイルを埋め込むことは悪い考えです。
すべてのファイル部分が収まる必要がある固定ブロックサイズがあった場合、追加されたバイト数を示すバイトでファイル部分を埋め込むことができます。たとえば、パディングとして7バイトを追加した場合、パディングバイトはすべて0x07になります。あとで部品を再結合すると、プログラムは最初にパディングを取り除く必要があります。与えられた例では、パートの最後のバイト、すなわち0x07を読み込み、7バイトをファイルの最後から除去しなければならないと結論づける。
このアプローチには二つの問題があります。
- はあなたが達成できる最大パディングは、パディングが必要とされない場合は、ダミー・パディングの完全なブロックを追加する必要があると思います0xffの= 255バイト
- ですプログラムがパディングバイトと元のコンテンツを区別できないためです。ファイル部分が0x01で終了し、パディングが必要ない場合、結合プログラムはセグメントから最後のバイトを削除し、ファイルを破損させます。
BSDまたはGNU/Linuxで見つかるsplit
プログラムのソースコードを見てみると楽しいです。ヒント:パディングは必要ありません。
ゼロは1、2、3などと同じように内容です。ファイルにゼロを追加すると、その内容が変更されます。 – NealB
車輪を改造する? –