2009/04/20(月)UO のジャーナル保存:根本的に間違ってました

<CR> が 0x0d、<LF> が 0x0a。
なので言ってることもサンプルコードも根本的に間違い。<LF><CR> っていうのが改行コードのつもりで残るので、読めるけど行頭にゴミが入る、もしくは改行されない、というファイルが出来上がる。
他にも sizeof(char) でサイズ決めたり、char で変数宣言してるけど、意図的には単純に 1Byte 単位のデータが欲しいのであって char が欲しいのではない、とか。

で、UO のジャーナルは改行が 0x0d0a000d00 となっているのを 0x0d000a00 に置き換えるのが正解。
0x0d0a00 を 0x0d000a00 に置き換えて、0x0d00 を削除するのが簡単か。
どうなったらこういう改行コードが付くんだろ。

ということを踏まえて書き直して、UTF-8 への変換を書いて遊んでた。コードは長いので略。
ググって出てくる iconv(3) のサンプルもまともなものが少ないという悲しさよ。