子プロセスにファイル情報を渡す
C ランタイム ライブラリ リファレンス への移動
プログラムで exec 関数または spawn 関数を使って新しいプロセスを作成した場合,新しいプロセスは,通常,元のプロセスが作成したオープンファイルのすべてのハンドルを継承します。ただし,このハンドルに関する一部の情報(ファイルを開くために使用されたアクセスモードなど)は失われます。たとえば,バイナリモードで付加するためにファイルを開くと,子プロセスがファイルの最後ではなくその位置で書き込んだり,テキストモードへの書き込みを行ってファイルを破壊する可能性があります。
オープンファイルに関するこのような情報を子プロセスに継承するには,プログラムをオブジェクトファイル FILEINFO.OBJ にリンクする必要があります。
例を示します。
BCC32 TEST.C \BCB\LIB\FILEINFO.OBJ
ファイル情報は,環境変数 _C_FILE_INFO に渡されます。この変数には,エンコードされたバイナリ情報が格納されます。この値をプログラムで読み取ったり変更してはなりません。この情報を正しく継承するには,子プログラムが C++ ランタイムライブラリを使って作成されている必要があります。
その他のプログラムは _C_FILE_INFO を無視することができ,ファイル情報を継承しません。