Übergabe von Dateiinformationen an untergeordnete Prozesse

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Referenz zur C-Laufzeitbibliothek

Wenn ein Programm die Funktionen exec oder spawn zum Erstellen eines neuen Prozesses verwendet, erbt der neue Prozess normalerweise alle geöffneten Datei-Handles, die vom ursprünglichen Prozess erstellt wurden. Allerdings gehen einige Informationen zu diesen Handles verloren, etwa der zum Öffnen der Datei verwendete Zugriffsmodus. Wenn das Programm beispielsweise eine Datei zum Anhängen im Binärmodus öffnet, kann der untergeordnete Prozess die Datei beim Schreiben in einer anderen Stelle als das Dateiende oder beim Schreiben der Datei im Textmodus beschädigen.

Damit untergeordnete Prozesse solche Informationen über geöffnete Dateien erben, müssen Sie beim Linken des Programms die Objektdatei FILEINFO.OBJ einbinden.

Ein Beispiel:

BCC32 TEST.C \BCB\LIB\FILEINFO.OBJ

Die Dateiinformationen werden in der Umgebungsvariablen _C_FILE_INFO übergeben. Diese Variable enthält codierte Binärdaten. Das Programm sollte den Wert dieser Variablen nicht zu lesen oder zu ändern versuchen. Das untergeordnete Programm muss mit der C++-Laufzeitbibliothek erstellt worden sein, damit diese Informationen richtig übergeben werden.

Andere Programme können die Variable _C_FILE_INFO ignorieren; sie erben keine Dateiinformationen.

Siehe auch