IFF フォーマットの拡張子
 
 
 

PATH は include の検索パスを定義します。

INCL は include ブロックです。

EOVC は可変長チャンクの終わりを示すマーカーです。

GEND はグループの終わりを示すマーカーです。

構文:

	PATH	#	<directory names>
	INCL	#	<file names>
	EOVC	szUnknown
	GEND	0

PATH と INCL はデータ ブロック(チャンク)であるため、メモリ境界の整合情報をグループから継承します。

EOVC と GEND は fifo ファイル(パイプなど)で使用されます。fifo でサイズを指定せずにグループやチャンクを作成すると、次のようになります。

FORM	sz_Fifo TYPE	; start of form
	BLCK	sz_Fifo	data	; block 1
	EOVC	sz_Unknown		; end of block 1
	....			;
	BLCK	sz_Fifo	data	; block 2
	EOVC	sz_Unknown		; end of block 2
	GEND	0		; no more block in this FORM

EOVC は単に可変長チャンクの終わりを表すマーカーですが、GEND は現在のグループを閉じるリクエストと解釈されるため、1 つ上のレベルに移動します。

シーク可能なファイルを書き込むときにブロックのサイズを指定しない場合は、fifo と同様のファイル構造が作成されますが、EOVC は書き込まれません。こうすると、グループのヘッダー情報にランダム アクセスしなくてもグループの終わりを検出できるため、作成途中のファイルを解析するときなどに非常に便利です。ほかの標準的な IFF パーサーからエラーが報告されないように、GEND のサイズ フィールドはゼロに設定されます。EOVC のサイズ フィールドの値を標準的な IFF パーサーで読み取ると、fifo 拡張機能が実装されていない場合は、エラーが発生します。

警告:旧バージョンの IFF パーサーとの互換性を保つために、GEND の後には sz_Unknown が付きます。また、fifo ファイルの場合は、EOVC の後にも sz_Unknown が付きます。

サイズが指定されていないブロックをスキップする確実な方法はないため、fifo ファイルの書き込み側プロセスと読み取り側プロセスの間でファイルの内容を十分に確認するようなロジックを組み込むことを強くお勧めします。

最新の IFF パーサーにはファイル内の EVOC を検出する機能が備わっています。ただし、ブロックのスキップ操作は大量の読み取り処理と比較処理を伴うため、性能が著しく低下することに注意してください。また、スキップ操作は 100% 信頼できるものではないことにも注意してください。