IFS

20. NULL-STOP とブランクの除去

ストリーム・ファイルの特質についてもう少し解説する。
先に説明したようにストリーム・ファイルとは
紐(ひも)のように最初から最後まで連続して繋がっている。
そして最後の終端は NULL (X’00’) で終わる。

このように最後が NULL で終わることをオープン系では
NULL-STOP と呼ぶ。
例えば C言語での文字列: char や char* も最後は NULL(X’00’)で
終わる。
つまり入れ物の大きさは決まっていても実際に入っているデータは
NULL-STOP までである。
ライブラリー・システムの場合も CRTPF などで容量はあっても
実際のレコード数はそれより小さいのと同じことである。

すなわち最後にブランクの文字列が続いていたとしても
それはトリム(TRIM)して最後に後続するブランクは除去するのが
一般的である。

ストリーム・ファイルにはライブラリー・システムのような
レコードが固定長である、という概念はない。

そもそもレコードという概念もない。
ファイルは最初から最後まで繋がっているのだ。
あえて区切りというなら改行コードが間にある場合もある。

のような構造となる。
またストリーム・ファイルはほとんどが ASCIIコード(CCSID=819)として
作成されるので改行コードは

0x0d, 0x0a, 0x00 である。

これに対して EBCDIC の改行コードは

0x15, 0x00 である。

IFS のストリーム・ファイルの開発をするには
この2つは覚えておく必要がある。