Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File5.9.19 Fopen TOS Name: »file open« - öffnet eine Datei. Gemdosnummer: 61 Deklaration: int32_t Fopen ( const int8_t *fname, int16_t mode ); Beschreibung: Die GEMDOS-Routine Fopen dient dazu, Dateien zu öffnen. Es gilt: Parameter Bedeutung fname Name der zu öffnenden Datei mode Modus als Bitvektor Bit-0..2 = Zugriffsmodus 0 = nur lesen 1 = nur schreiben 2 = lesen und schreiben Bit-3 = reserviert (auf Null setzen) Bit-4..6 = Sharing-Modus Bit-7 = Vererbungsflag Die Bits 3..7 stehen nur bei einem GEMDOS mit Filelocking Erweiterungen (Cookie _FLK testen) zu Verfügung. Das Vererbungsflag bestimmt, ob vom Prozess gestartete Childs das entsprechende Handle erben und die gleichen Zugriffsrechte haben. Wenn das Flag gesetzt ist, muß das Child jede Datei, die es nutzen möchte, erneut öffnen und hat die gleichen Restriktionen wie jeder andere Prozess. Der Sharing-Modus legt fest, auf welche Art andere Prozesse auf die Datei zugreifen dürfen, wenn sie erst einmal geöffnet ist. Es gilt: Sharing Bedeutung 0 Kompatibilitätsmodus (wird von den Programmen benutzt, die nichts von den Netzwerkerweiterungen wissen). 1 Lesen und Schreiben verbieten (die Datei darf kein zweites Mal geöffnet werden). 2 Schreiben verbieten (die Datei darf nur noch zum Lesen geöffnet werden). 3 Lesen verbieten (die Datei darf nur noch zum Schreiben geöffnet werden). 4 Alles ist erlaubt. Achtung: Das File-Locking kann beratend implementiert sein, d.h. daß es möglich sein kann, auf Bereiche trotz eines vorgenommenen Lockings zuzugreifen. Programme, die File-Locking unterstützen, sollten daher vor einem Zugriff selbst einen Lock setzen und diesen unmittelbar nach dem Zugriff wieder freigeben. So ist garantiert, daß etwaige Locks anderer Seiten respektiert werden. In MiNT und MagiC stehen darüber hinaus die folgenden Modi zur Verfügung: mode Bedeutung 0x080 reserviert für MiNT. 0x100 Datei bei I/O nicht blockieren. 0x200 Datei erstellen, falls diese nicht exist. 0x400 existierende Datei auf Null-Länge setzen. 0x800 existierende Datei nicht öffnen. Hinweis: Für einige Geräte existieren bereits Standardkanal-Nummern, so daß es nicht notwendig ist, Fopen aufzurufen. Im einzelnen: Kanal Bedeutung 0 Tastatur (stdin) 1 Bildschirm (stdout) 2 serielle Schnittstelle (stdaux) 3 parallele Schnittstelle (stdprn) Lt. Atari sind die Standardkanal-Nummern 4 und 5 reserviert, so daß normale Kanalnummern für Dateien erst bei 6 beginnen. Darüber hinaus lassen sich auch die folgenden zeichenorientierten Geräte öffnen: ∙ PRN: (parallele Schnittstelle, -3) ∙ AUX: (serielle Schnittstelle, -2) ∙ CON: (Konsole, -1) Symbolische Links werden von dieser Funktion automatisch dereferenziert, d.h. wenn die Datei bereits als symbolischer Link existiert, wird die davon referenzierte Datei geöffnet bzw., je nach Modus, auf die Länge Null gebracht. Ergebnis: Die Funktion liefert die entsprechende Dateikennung, oder eine negative Fehlermeldung zurück. Verfügbar: Alle GEMDOS Versionen. Gruppe: Dateifunktionen Querverweis: Binding Fcreate Ein-/Ausgabekanäle des BIOS F_SETLK