Es geht hier um die Routine "FileCreate" in den SysUtils von FPC 3.0.0.
Wenn in einem Verzeichnis, für welches keine Schreibrechte bestehen, versucht wird, eine Datei mit "FileCreate"
zu erzeugen, müsste doch dieser Vorgang fehlschlagen. Tut es aber nicht.
Hier ein kleiner Code-Schnipsel:
Code: Alles auswählen
Var
Err : LongInt;
Begin
Err := FileCreate('C:\Program Files\Test.tmp');
End;
Ausgabe Err:
Code: Alles auswählen
Writeln(Err); //ergibt 140, also alles klar, was nicht sein darf.
Eigentlich sollte doch "FileCreate" in diesem Fall -1 zurück liefern.
Bei Rewrite macht er es richtig:
Code: Alles auswählen
Var
Err : Word;
f : Text;
Begin
AssignFile(f,'C:\Program Files\Test.tmp');
(*$I-*) Rewrite(f); (*$I+*)
Err := IOResult;
End;
Ausgabe Err:
Code: Alles auswählen
Writeln(Err); //ergibt 2, was richtig ist.
Ist das nun tatsächlich ein Problem bei "FileCreate" oder alles so gewollt?
Zeff