MSX-DOS2 FCS 03 51

From Z80 Machines Wiki
Jump to: navigation, search

3.51二重ファイルハンドル(47H)

パラメータ:C = 47H(_DUP)

B =ファイルハンドル 結果:A =エラー

B =新しいファイルハンドル


この関数は、指定されたファイルハンドルのコピーを作成します。利用可能な最小のファイルハンドル番号が常に使用され、利用可能なものがなければ ".NHAND"エラーが返されます。新しいファイルハンドルは元のファイルと同じファイルを参照し、どちらを使用することもできます。一方のハンドルのファイルポインタを移動すると、もう一方のハンドルも移動します。どちらかのハンドルが閉じている場合は、もう一方のハンドルを使用することができます。

この関数によって作成された重複ファイルハンドルは「別々に開かれる」わけではないため、".FOPEN"エラーを生成する目的で別々のファイルハンドルとしてカウントされることはありません。たとえば、 "DUP"化されたファイルハンドルの名前を変更するか(機能53h)、属性を変更すると(機能55h)、効果は両方のファイルハンドルに適用されます。特に"DUP"化されたファイルハンドルのコピーが1つ削除されると(機能54h)、そのファイルは実際には削除され、もう一方のファイルハンドルはまだ開いていても安全に使用できなくなります。それが使用されている場合(閉じられているか、確実にされているか、削除されている場合以外)、 ".FDEL"エラーが返されます。