実行結果

% ./a.out aria.jpg tmp.jpg
marker=SOI(FFD8): length=0
marker=APP0(FFE0): length=14
marker=APP1(FFE1): length=32
marker=DQT(FFDB): length=65
marker=DQT(FFDB): length=65
marker=SOF0(FFC0): length=15
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=DHT(FFC4): length=29
marker=DHT(FFC4): length=179
marker=SOS(FFDA): length=9536
marker=EOI(FFD9): length=0
% md5sum aria.jpg tmp.jpg
0f5cf415f0d01626632df9e391b1b1eb  aria.jpg
0f5cf415f0d01626632df9e391b1b1eb  tmp.jpg
%

さて、自己参照構造体で作ったリスト構造の入れ替えはどうやるのが綺麗かしら…
(と考えてる時点で負けな気もしますけど)