[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 3703] BOARD: Re: pete6a とcmptek0



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3cf3594d_2286

2002/05/28 19:17
川合秀実

[OSASK 3702]へのレスです。

>報告です。
>pete6aではディスクに書き戻せないようです。
>あと、cmptek0でエラーが出ることがあります。(pete5,6とも)

  ご報告ありがとうございます。

  ディスクに書き戻せなくなったバグは、僕のくだらないミスでした。これは10
秒で直りました。

  問題はcmptek0の方です。これはtek0圧縮がかかったファイルを削除して、そ
の後に他のファイルがこのセクタをresizeによって獲得すると起こりうるバグで
す。たとえば圧縮後10KBのファイルが削除されたとして、新規ファイルを生成し
てその最初のセクタがたまたまtek0ヘッダだったりするわけです。このせいでpo
konが誤認し、そしてこの新規ファイルが10KBに満たなければ、解凍に失敗して
例外を出す、という仕組みのようです。・・・したがってcmptek0によらず、mco
pyやteditcなどでも起こり得ます。ファイルサイズ0のファイルをリサイズして
オープンした直後が危険なのです。

  それでどうするかですが、対策は分かっています。ファイルサイズ0からサイ
ズを変更するときに限って、ファイルの第一バイトをいじることにしました。こ
れで問題は解決します。しかしこの修正は少々大掛かりなので、ちょっと時間が
かかりそうです。Pete7は明日になりそうです。