• Fattrib | Dateiattribute ändern oder ermitteln. |
• Fchdir | Sets the current directory from a file descriptor. |
• Fchmod | Berechtigung für Dateizugriffe setzen. |
• Fchown | Besitzer einer Datei ändern. |
• Fchown16 | Besitzer einer Datei ändern. |
• Fclose | Datei schließen. |
• Fcntl | Kontrolloperationen auf einem File ausführen. |
• Fcreate | Datei anlegen. |
• Fdatime | Änderungsdatum einer Datei ermitteln oder ändern. |
• Fdelete | Datei löschen. |
• Fdirfd | Returns a file descriptor from a directory handle. |
• Fdup | Dateihandle duplizieren. |
• Ffchmod | Berechtigung für eine geöffnete Datei setzen. |
• Ffchown | Besitzer einer geöffneten Datei ändern. |
• Ffdopendir | Opens a directory from a file descriptor. |
• Fforce | Umlenken von Ein-/Ausgaben von Standardkanälen. |
• Ffstat64 | Erweiterte Fileattribute ermitteln. |
• Fgetchar | Zeichen aus einer Datei lesen. |
• Fgetdta | Diskettenübertragungsadresse ermitteln. |
• Finstat | Eingabestatus für ein File festlegen. |
• Flink | Link auf ein File erzeugen. |
• Flock | File Record sperren oder freigeben. |
• Fmidipipe | MIDI Ein-/Ausgabe umlenken. |
• Fopen | Datei öffnen. |
• Foutstat | Ausgabestatus für ein File festlegen. |
• Fpipe | Pipe anlegen. |
• Fpoll | Auswählen von Filedeskriptoren. |
• Fputchar | Zeichen in ein File ausgeben. |
• Fread | Aus Datei lesen. |
• Freadlink | Inhalt eines symbolischen Links festlegen. |
• Frename | Datei umbenennen. |
• Fseek | Zeiger auf bestimmte Position innerhalb einer Datei setzen. |
• Fseek64 | Zeiger auf bestimmte 64-bit Position innerhalb einer Datei setzen. |
• Fselect | Auswählen von Filedeskriptoren. |
• Fsetdta | Diskettenübertragungsadresse ändern. |
• Fsfirst | Ersten Eintrag in Verzeichnis suchen. |
• Fsnext | Nächsten Eintrag in Verzeichnis suchen. |
• Fsymlink | Symbolischen Link auf ein File erzeugen. |
• Fstat64 | Erweiterte Fileattribute ermitteln. |
• Fsync | Synchronisation einer Datei. |
• Fwrite | In Datei schreiben. |
• Fxattr | Erweiterte Fileattribute ermitteln. |
Querverweis: Verzeichnisfunktionen XBIOS-Laufwerksfunktionen Test auf Pipes
Name: | »file attribute« - Dateiattribut ermitteln oder setzen.
| ||||||||
Gemdosnummer: | 67
| ||||||||
Deklaration: | int16_t Fattrib ( const int8_t *filename, int16_t wflag,
int16_t attrib );
| ||||||||
Beschreibung: | Die GEMDOS-Routine Fattrib ermittelt oder setzt die Attribute
einer Datei. Es gilt:
Hinweis: Programme sollten nach Möglichkeit auf die Routinen Fxattr und Fchmod zurückgreifen, da diese leistungsfähiger als Fattrib sind. | ||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fxattr
|
C: | int16_t Fattrib ( const int8_t *filename, int16_t wflag,
int16_t attrib );
|
Assembler: |
move.w attrib,-(sp) ; Offset 8 move.w wflag,-(sp) ; Offset 6 pea filename ; Offset 2 move.w #67,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H43,L:filename%,W:wflag%,W:attrib%)
|
Name: | »Set directory« - Set the current directory from a file
descriptor.
|
Gemdosnummer: | 385
|
Deklaration: | int32_t Fchdir ( int16_t handle );
|
Beschreibung: | The GEMDOS routine Fchdir sets the current directory for the
current process from a directory with the ID handle.
|
Ergebnis: | E_OK = Alles OK oder negative GEMDOS-Fehlernummer.
|
Verfügbar: | Sie steht ab FreeMiNT 1.17 zur Verfügung.
|
Gruppe: | Dateifunktionen
|
C: | int32_t Fchdir ( int16_t handle );
|
Assembler: |
move.w handle,-(sp) ; Offset 2 move.w #385,-(sp) ; Offset 0 trap #1 ; GEMDOS addq.l #4,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H181,W:handle%)
|
Name: | »Fchmod« - Berechtigung für Dateizugriffe setzen.
| ||||||||||||||||||||||||||||||||||||||||||||||||
Gemdosnummer: | 306
| ||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int32_t Fchmod ( int8_t *name, int16_t mode );
| ||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ändert die Zugriffsrechte für die Datei
name. Der Parameter mode enthält die neuen
Zugriffsrechte:
Für ausführbare Dateien gilt:
Hinweis: Nicht alle Filesysteme müssen alle Möglichkeiten unterstützen. Nicht unterstützte Zugriffsrechte werden dann ignoriert. Ausführungsrecht für ein Verzeichnis bedeutet, daß in diesem Verzeichnis nach einem Namen bzw. einer Namenskomponente gesucht werden darf. | ||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert.
| ||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding Fattrib Fxattr XFS-Konzept in MagiC
|
C: | int32_t Fchmod ( int8_t *name, int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 6 pea name ; Offset 2 move.w #306,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Fchown« - Eigentümer/Gruppenkennungen ändern.
| ||||||
Gemdosnummer: | 305
| ||||||
Deklaration: | int32_t Fchown ( int8_t *name, int16_t uid, int16_t gid );
| ||||||
Beschreibung: | Die Funktion ändert die Benutzer-/Gruppenkennung der Datei
name, die wiederum die Zugriffsrechte der Datei regeln.
Dieser Aufruf kann nur von einem Prozeß erfolgen der eine effektive Benutzerkennung (EUID) hat, die 0 ist, oder die der UID der Datei entspricht. Im letzteren Fall muß die neue UID der alten entsprechen, und darüber hinaus der aufrufende Prozeß Mitglied der Gruppe mit der Gruppennummer GID sein. | ||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert.
| ||||||
Gruppe: | Dateifunktionen
| ||||||
Querverweis: | Binding Fchown16 Fchmod Fxattr XFS-Konzept in MagiC
|
C: | int32_t Fchown ( int8_t *name, int16_t uid, int16_t gid );
|
Assembler: |
move.w gid,-(sp) ; Offset 8 move.w uid,-(sp) ; Offset 6 pea name ; Offset 2 move.w #305,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Fchown16« - Eigentümer/Gruppenkennungen ändern.
| ||||||||
Gemdosnummer: | 384
| ||||||||
Deklaration: | int32_t Fchown16 ( int8_t *name, int16_t uid, int16_t gid,
int16_t flag );
| ||||||||
Beschreibung: | Die Funktion ändert die Benutzer-/Gruppenkennung der Datei
name, die wiederum die Zugriffsrechte der Datei regeln.
Der Parameter flag gibt an, wie symbolische Links behandelt werden sollen. Es gilt:
Dieser Aufruf kann nur von einem Prozeß erfolgen der eine effektive Benutzerkennung (EUID) hat, die 0 ist, oder die der UID der Datei entspricht. Im letzteren Fall muß die neue UID der alten entsprechen, und darüber hinaus der aufrufende Prozeß Mitglied der Gruppe mit der Gruppennummer GID sein. | ||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 1.16.0 existiert.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fchown Fchmod Fxattr XFS-Konzept in MagiC
|
C: | int32_t Fchown16 ( int8_t *name, int16_t uid, int16_t gid,
int16_t flag );
|
Assembler: |
move.w flag,-(sp) ; Offset 10 move.w gid,-(sp) ; Offset 8 move.w uid,-(sp) ; Offset 6 pea name ; Offset 2 move.w #384,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea 12(sp),sp ; Stack korrigieren |
Name: | »file close« - Datei schließen.
| ||||
Gemdosnummer: | 62
| ||||
Deklaration: | int16_t Fclose ( int16_t handle );
| ||||
Beschreibung: | Die GEMDOS-Routine Fclose schließt eine Datei mit der
Dateikennung handle.
Hinweis: Im Netzwerk wird das aktive Locking aufgehoben. Beim Schließen von Standardkanälen wird ab GEMDOS-Version 0.15 wieder der ursprüngliche Kanal eingesetzt. | ||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||
Gruppe: | Dateifunktionen
| ||||
Querverweis: | Binding Fopen
|
C: | int16_t Fclose ( int16_t handle );
|
Assembler: |
move.w handle,-(sp) ; Offset 2 move.w #62,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H3E,W:handle%)
|
Name: | »Fcntl« - Kontrolloperationen auf einem File ausführen.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gemdosnummer: | 260
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int32_t Fcntl ( int16_t fh, int32_t arg, int16_t cmd );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion führt verschiedene Kontrolloperationen auf der
Datei mit der Handle fh duch. Der Parameter cmd
beschreibt die gewünschte Operation, und kann folgende Werte annehmen
(arg ist dabei vom gewählten Kommando abhängig):
F_DUPFD (0): Dupliziert das angegebene Datei-Handle. Für das neue Intervall gilt: arg <= Handle < 32. Falls in dem angegebenen Bereich keine freien Handles existieren, wird die Fehlermeldung ENHNDL zurückgegeben. Ein Aufruf von Fdup (handle) ist also äquivalent zu Fcntl (handle, 6L, F_DUPFD). F_GETFD (1): Dieses Kommando gibt das nicht-vererbungs-Flag für das Handle fh zurück. Das Flag ist 0, wenn per Pexec gestartete Tochterprozesse die angegebene Datei erben sollen, anderenfalls hat es den Wert 1. Der Parameter arg besitzt keine Bedeutung. F_SETFD (2): Dieses Kommando setzt das nicht-vererbungs-Flag für das Handle f. arg gibt an, ob ein mittels Pexec gestarteter Child Processes die Dateihandle erbt. Ein Wert von 1 steht für nicht vererben, ein Wert von 0 für vererben. Der Defaultwert des Flags ist 0 für die Standard GEMDOS-Handles im Bereich von 0...5 und 1 für alle anderen, also nicht-Standard-Handles. F_GETFL (3): Dieses Kommando gibt die Dateihandle-Flags zurück, die durch den Benutzer verändert werden können. Dabei handelt es sich um den bei Fopen angegebenen Parameter mode, sofern dieser nicht durch einen anderen Aufruf von Fcntl verändert worden ist. F_SETFL (4): Dieses Kommando setzt die Dateihandle-Flags neu, die durch den Benutzer verändert werden können (andere Bits werden ignoriert, und sollten auf den Wert 0 gesetzt werden). Es ist nicht möglich, den Schreib-Lese Modus bzw. die Modi für Filesharing zu verändern. F_GETLK (5): Dieses Kommando testet auf einen Lock auf einer Datei. Der Parameter arg ist ein Zeiger auf eine flock-Struktur, in der Informationen über einen Datei-Lock gespeichert sind. Falls ein Lock existiert, wird er in die Struktur kopiert. Dabei wird in der Komponenten l_pid die PID des sperrenden Prozesses vermerkt. Falls kein Lock existiert, wird die Komponente l_type auf den Wert F_UNLCK gesetzt. Für den Fall, daß der Lock von einem anderen Rechner im Netzwerk gehalten wird, wird die Komponente l_pid auf einen vom NFS (Netzwerk-Filesystem) definierten Wert gesetzt. Für diesen Wert gilt: 0x1000 <= l_pid <= 0xffff. Man denke daran, daß normale PID's einen Wert kleiner als 1000 besitzen. F_SETLK (6): Dieses Kommando setzt (l_type = F_RDLCK oder F_WRLCK) bzw. löscht (l_type = F_UNLCK) einen beratenden Lock auf eine Datei. Falls diese eine FIFO-Queue (First-in-First-Out) ist, muß die gesamte Datei auf einmal behandelt werden. Für den Fall, daß der Lock mit von anderen Prozessen gesetzten Locks kollidiert, wird der Wert ELOCKED zurückgegeben. Wenn versucht wird, einen nicht-existierenden Lock zu löschen, wird der Wert ENSLOCK zurückgeliefert. Zu beachten ist, daß sich Read-Locks überlappen dürfen, Write-Locks hingegen nicht. Falls eine gelockte Datei geschlossen wird, oder der entsprechende Prozess terminiert, werden alle gesetzten Locks automatisch aufgehoben (d.h. zurückgesetzt). F_SETLKW (7): Analog F_SETLK, mit dem Unterschied, daß wenn der Lock mit solchen von anderen Prozessen kollidiert, nicht ELOCKED zurückgeliefert wird, sondern der sperrende Prozess suspendiert wird, bis das Locking vom anderen Prozess aufgehoben wird. FSTAT (0x4600): Ermittelt die Attribute einer Datei. Im Parameter arg wird ein Zeiger auf eine XATTR-Struktur zurückgeliefert, so als ob ein Aufruf von Fxattr gemacht worden wäre. Das Kommando wird in MagiC ab Version 3.0 unterstützt. FIONREAD (0x4601): Im Parameter arg wird ein Zeiger auf einen Long-Wert zurückgegeben, in dem die Anzahl der Bytes angegeben ist, die z.Zt. vom angegebenen Datei-Handle gelesen werden können, ohne daß der Prozess blockiert wird. Die Angabe ist nicht zwingend korrekt, da die genaue Anzahl in einigen Fällen nur geschätzt werden kann. Das Kommando wird in MagiC ab Version 3.0 unterstützt. FIONWRITE (0x4602): Analog FIONREAD, nur wird hier die Anzahl der Bytes, die z.Zt. geschrieben werden können, ausgegeben. Das Kommando wird in MagiC ab Version 3.0 unterstützt. FUTIME (0x4603): z.Zt. keine Informationen bekannt. FTRUNCATE (0x4604): Der Parameter arg ist ein Zeiger auf einen Long-Wert, der die neue Länge der zu verkürzenden Datei enthält. Das Kommando wird in MagiC ab Version 3.0 unterstützt. FIOEXECPT (0x4605): Im Parameter arg wird ein Zeiger auf einen Long-Wert zurückgegeben, in dem steht, ob sich die Datei in einem Ausnahmezustand befindet (1) oder nicht (0). Die folgenden Kommandos sind auf alle Terminal-Devices wie die Console oder ein Pseudo-Terminal anzuwenden: TIOCGETP (0x5400): Dieses Kommando gibt über den Parameter arg einen Zeiger auf eine sgttyb-Struktur zurück, in der die Parameter des Terminals definiert sind. TIOCSETN (0x5401): Über dieses Kommando kann ein neue sgttyb-Struktur gesetzt werden, welche die Parameter des Terminals festlegt. Es müssen zeurst die Parameter des Terminals erfragt werden, die gewünschten verändert und dann mit diesem Kommando gesetzt werden. TIOCGETC (0x5402): Dieses Kommando liefert über den Parameter arg einen Zeiger auf eine tchars-Struktur zurück, in welcher die Terminal-Kontrollzeichen definiert sind. TIOCSETC (0x5403): Über dieses Kommando können neue Terminal-Kontrollzeichen gesetzt werden. Dazu übergibt man in arg einen Zeiger auf eine tchars-Struktur, in welcher die Kontrollzeichen definiert sind. Wird ein Zeichen auf 0 gesetzt, so wird die entsprechende Funktion gesperrt. TIOCGLTC (0x5404): Dieses Kommando liefert über den Parameter arg einen Zeiger auf eine ltchars-Struktur zurück, in welcher die erweiterten Terminal-Kontrollzeichen definiert sind. TIOCSLTC (0x5405): Über dieses Kommando können neue erweiterte Terminal-Kontrollzeichen gesetzt werden. Dazu übergibt man in arg einen Zeiger auf eine ltchars-Struktur, in welcher die Kontrollzeichen definiert sind. Wird ein Zeichen auf 0 gesetzt, so wird die entsprechende Funktion gesperrt. TIOCGPGRP (0x5406): Dieses Kommando liefert über den Parameter arg einen Zeiger auf die Prozess-Gruppe des Terminals zurück. TIOCSPGRP (0x5407): Über dieses Kommando kann die Prozess-Gruppe des Terminals eingestellt werden. Dazu wird über den Parameter arg ein Zeiger auf die entsprechende Prozess-Gruppe übergeben. Sollten Prozesse aus anderen Gruppen versuchen, auf dieses Terminal (lesend oder schreibend) zuzugreifen, so werden ihnen Job-Control-Signale (SIGTSTP etc.) gesendet. TIOCFLUSH (0x5408): Über dieses Kommando kann die Art des Flushings spezifiziert werden. Dazu wird über den Parameter arg ein Zeiger auf einen Long-Wert übergeben, der die gewünschte Art beschreibt. Dabei gilt:
TIOCSTOP (0x5409): Dieses Kommando unterbricht die Ausgabe auf das Terminal (ähnlich der Flußkontrolle per Control-S). Der Parameter arg ist in diesem Zusammenhang ohne Bedeutung. TIOCSTART (0x540a): Dieses Kommando sorgt dafür, daß die Ausgabe des Terminals wieder aufgenommen wird (ähnlich der Flußkontrolle per Control-Q). Der Parameter arg ist in diesem Zusammenhang ohne Bedeutung. TIOCGWINSZ (0x540b): Über dieses Kommando kann die Fenstergröße für ein Textfenster erfragt werden. Dazu wird über den Parameter arg ein Zeiger auf eine winsize-Struktur zurückgeliefert. Falls eine Komponente dieser Struktur den Wert 0 besitzt, so bedeutet dies, daß der entsprechende Wert unbekannt ist. TIOCSWINSZ (0x540c): Über dieses Kommando kann die Fenstergröße gesetzt werden. Dazu wird über den Parameter arg ein Zeiger auf eine winsize-Struktur übergeben, die die notwendigen Informationen enthält. Zu beachten ist in diesem Zusammenhang, daß der Kernel den Aufruf zwar bearbeitet, die Ausführung aber Window-Managern überläßt. Diese senden auch das Signal SIGWINCH, falls notwendig. TIOCGXKEY (0x540d): Dieses Kommando ermittelt die Definition einer Funktions- bzw. Cursortaste. Dazu wird über den Parameter arg ein Zeiger auf eine xkey-Struktur übergeben. Die Komponente xk_num der Struktur muß dabei mit der gewünschten Taste gefüllt werden:
Der zu der Taste gehörende String (es gilt die Konvention der Sprache C) wird über die Komponente xk_def zurückgeliefert. TIOCSXKEY (0x540e): Über dieses Kommando kann die Definition einer Funktions- bzw. Cursortaste gesetzt werden. Dazu übergibt man über den Parameter arg einen Zeiger auf eine xkey-Struktur, in der die Komponenten xk_num und xk_def bereits gesetzt sein müssen. Nach Ausführung des Kommandos wird dann per Fread der in xk_def angegebene String (statt ASCII-0) zurückgeliefert. Diese Übersetzung findet jedoch nur statt, wenn das Programm per Pdomain in die MiNT-Domain gesetzt wurde und die Zeichen vom Terminal mittels Fread gelesen werden. Da der in xk_def übergebene String nullterminiert sein muß, können auf diese Art und Weise maximal 7 Zeichen übergeben werden. TIOCIBAUD (0x5412): Über dieses Kommando kann die Baudrate für die Eingabe des Terminals eingestellt werden. Dazu wird über den Parameter arg ein Zeiger auf einen Long-Wert übergeben, in dem die Baudrate angegeben ist. TIOCOBAUD (0x5413): Über dieses Kommando kann die Baudrate für die Ausgabe des Terminals eingestellt werden. Dazu wird über den Parameter arg ein Zeiger auf einen Long-Wert übergeben, in dem die Baudrate angegeben ist. TIOCCBRK (0x5414): Dieses Kommando löscht Bit-3 des TSR-Registers des Peripherie-Bausteins MFP68901. TIOCSBRK (0x5415): Dieses Kommando setzt Bit-3 des TSR-Registers des Peripherie-Bausteins MFP68901. Dadurch wird ein Break gesendet, sobald das Senderegister leer ist. Der Parameter arg ist in diesem Zusammenhang ohne Bedeutung. TIOCGFLAGS (0x5416): Dieses Kommando gibt über den Parameter arg einen Zeiger auf die Terminal-Kontrollflags zurück. Dieses Kommando gibt in den unteren Bits des LONGS, auf den der Parameter arg zeigt, die Terminal-Kontrollflags (z.B. Anzahl Stop-Bits und Daten-Bits) zurück. Folgend Bitmasken sind möglich:
TIOCSFLAGS (0x5417): Dieses Kommando setzt neue Terminal-Kontrollflags, die über den Parameter arg übergeben werden. TIOCOUTQ (0x5418): Dieses Kommando gibt in arg einen Zeiger auf einen Long-Wert zurück, in dem die Anzahl der Bytes im Ausgabepuffer gespeichert ist. TIOCSETP (0x5419): Funktioniert analog zu TIOCSETN, mit dem Unterschied, daß (wenn das Terminal TIOCOUTQ unterstützt) die Funktion erst dann zurückkehrt, wenn der Ausgabepuffer leer ist. TCURSOFF (0x6300): Dieses Kommando schaltet den Cursor des Terminals aus. TCURSON (0x6301): Dieses Kommando schaltet den Cursor des Terminals ein. TCURSBLINK (0x6302): Dieses Kommando schaltet den Cursor des Terminals auf Blinken. Die Blinkrate läßt sich per TCURSSRATE einstellen. TCURSSTEADY (0x6303): Dieses Kommando schaltet das Cursor-Blinken des Terminals wieder aus. TCURSSRATE (0x6304): Dieses Kommando setzt die Cursor-Blinkrate des Terminals. Dazu wird in arg ein Zeiger auf einen Word-Wert übergeben, der angibt, nach wievielen Vertical-Blanks der Cursor einmal invertiert werden soll. TCURSGRATE (0x6305): Dieses Kommando ermittelt die Cursor-Blinkrate des Terminals. Diese wird in einem Word-Wert zurückgegeben, auf den arg zeigt. Die folgenden Kommandos sind nur auf (als Dateien geöffnete) Prozesse anwendbar. Um den eigenen Prozess als Datei zu öffnen, muß als Pfad für Fopen 'U:\PROC\prozessname.-1' angegeben werden. Dabei wählt die Extension -1 den eigenen, und -2 den Parent-Prozess. PBASEADDR (0x5002): Im Parameter arg wird ein Zeiger auf die Adresse der Basepage, des als Datei geöffneten Prozesses zurückgegeben. Das Kommando wird in MagiC ab Version 3.0 unterstützt. PPROCADDDR (0x5001): Im Parameter arg wird ein Zeiger auf die Adresse des PCB (Prozess-Control-Blocks) zurückgegeben. PCTXTSIZE (0x5003): Im Parameter arg wird ein Zeiger auf einen Long-Wert geliefert, in dem die Länge des Prozess-Context-Blocks angegeben ist. Zwei dieser Strukturen befinden sich im Speicher vor dem PCB, dessen Adresse mit PPROCADDR erfragt werden kann. Die erste Struktur ist dabei für den aktuellen Prozesskontext verantwortlich, während die zweite den gespeicherten Kontext des letzten Systemaufrufs enthält. PSETFLAGS (0x5004): Dieses Kommando setzt die Programmflags (entsprechend denen im Programmheader. In arg wird dazu ein Zeiger auf einen Long-Wert übergeben, dessen untere 16 Bits die Programmflags darstellen. PGETFLAGS (0x5005): Dieses Kommando ermittelt die aktuellen Programmflags. Über den Parameter arg wird dabei ein Zeiger auf diese Flags zurückgegeben. PTRACESFLAGS (0x5006): Dieses Kommando setzt die Prozess-Tracing-Flags. Im Parameter arg wird ein Zeiger auf einen Word-Wert übergeben, der die Flags repräsentiert:
PTRACEGFLAGS (0x5007): Dieses Kommando ermittelt die aktuellen Prozess-Tracing Flags. Über den Parameter arg wird ein Zeiger auf diese Flags zurückgegeben. PTRACEGO (0x5008): (ab MC-68020 Prozessor) PTRACEFLOW (0x5009): PTRACESTEP (0x500a): PTRACE11 (0x500b): Diese Funktionen sollen einmal das Tracen von Prozessen ermöglichen. Der zu tracende Prozess muß sich dafür im Zustand 'suspendiert' befinden. Er wird durch die Trace Funktion wieder aufgeweckt. Diese Funktionen sind z.Zt. jedoch noch nicht implementiert. PLOADINFO (0x500c): Dieses Kommando gibt in arg einen Zeiger auf die ploadinfo Struktur zurück, in der Programmname und Kommandozeile gespeichert sind. PFSTAT (0x500d): Dieses Kommando entspricht FSTAT. Es ermittelt die erweiterten Attribute der zum Prozess gehörenden Programmdatei. Die folgenden Kommandos sind nur auf Dateien anwendbar, die Shared Memory repräsentieren: SHMGETBLK (0x4d00): Dieses Kommando liefert die Adresse eines per SHMSETBLK allozierten Speicherblocks zurück (bzw. einen Nullzeiger bei Fehlern). Aus Kompatibilitätsgründen muß der Parameter arg auf den Wert 0 gesetzt werden. Hinweis: Verschiedene Prozesse können den Speicherblock an unterschiedlichen Stellen in ihrem Adressraum sehen. Aus diesem Grund darf ein Shared-Memory-Bereich keine absoluten Zeiger auf Daten enthalten! Das Kommando wird in MagiC ab Version 3.0 unterstützt. SHMSETBLK (0x4d01): Im Parameter arg wird ein Zeiger auf einen Speicherblock übergeben, welcher vorher per Malloc/Mxalloc alloziert wurde. Der Speicher wird nun unter dem Dateinamen der Datei mit Handle fh zum Sharing angeboten. Die Datei muß dazu im Unterverzeichnis U:\SHM angelegt werden. Der Block wird derart markiert, daß er nicht beim Beenden des Prozesses freigegeben wird. Die Länge wird ermittelt und sowohl für die geöffnete Datei verwendet, als auch in das Verzeichnis eingetragen. Ungültige Blockadressen führen zum Fehlercode EIMBA oder zu einem Bus- oder Adreßfehler. Das Kommando wird in MagiC ab Version 3.0 unterstützt. Die folgenden Kommandos sind im Zusammenhang mit CD-ROM's interessant: CDROMREADOFFSET (0x4300): Dieses Kommando ermittelt die Blocknummer des ersten Sektors der letzten Session einer Multi-Session-CD. Der Parameter arg enthält nach dem Aufruf diese Blocknummer. CDROMPAUSE (0x4301): Dieses Kommando veranlaßt ein CD-ROM beim Abspielen einer Audio-CD in den Status Pause zu treten. CDROMRESUME (0x4302): Dieses Kommando veranlaßt ein CD-ROM das Abspielen einer Audio-CD fortzusetzen (Pause wird aufgehoben). CDROMPLAYMSF (0x4303): Dieses Kommando startet eine Audio-Wiedergabe. Der Parameter arg ist ein Zeiger auf eine cdrom_msf-Struktur, in die Anfangs- und Endzeit in MSF-Notation einzutragen sind. CDROMPLAYTRKIND (0x4304): Dieses Kommando startet eine Audio-Wiedergabe. Der Parameter arg ist ein Zeiger auf eine cdrom_ti-Struktur, in die Start- und Endposition in Track/Index-Schreibweise einzutragen sind. Bei den meisten Audio-CD's aus dem POP Bereich sind die Tracks nicht weiter eingeteilt. Viele Klassik-CD's haben aber auch innerhalb der Tracks noch eine feinere Einstellung in Indices. Achtung: Nicht jedes CD-ROM kann gezielt Indizes ungleich Eins ansteuern! CDROMREADTOCHDR (0x4305): Dieses Kommando erlaubt es, Informationen über den Aufbau einer CD zu ermitteln. Der Parameter arg ist ein Zeiger auf eine cdrom_tochdr-Struktur, in welche der erste und letzte Track der CD eingetragen werden. CDROMREADTOCENTRY (0x4306): Dieses Kommando erlaubt es, Informationen über den Aufbau einer CD zu ermitteln. Der Parameter arg ist ein Zeiger auf eine cdrom_tocentry-Struktur, in welche die gewünschten Informationen eingetragen werden. CDROMSTOP (0x4307): Dieses Kommando stoppt das entsprechende Laufwerk. CDROMSTART (0x4308): Dieses Kommando startet das entsprechende Laufwerk, und zieht ggfs. die Schublade wieder ein. CDROMEJECT (0x4309): Dieses Kommando sorgt für das Ausfahren der Schublade des entsprechenden Laufwerkes. CDROMVOLCTRL (0x430a): Dieses Kommando erlaubt es, die Lautstärke und Kanalzuordnungen der einzelnen Audio-Kanäle zu verändern. Der Parameter arg ist ein Zeiger auf eine cdrom_volctrl-Struktur. Das Kommando ist zum entsprechenden SunOS-Aufruf kompatibel. Achtung: Das Verstellen der Lautstärke ist nicht bei allen Geräten möglich! CDROMSUBCHNL (0x430b): Dieses Kommando ermittelt die aktuellen Positionsdaten, sowie den Audio-Status. Der Parameter arg ist ein Zeiger auf eine cdrom_subchnl-Struktur. CDROMREADMODE2 (0x430c): Dieses Kommando ermöglicht das Lesen von Modus-2 Sektoren. Solche Sektoren werden bei XA-CDs (Beispiel: Photo-CD ohne Fehlerkorrektur oder Video-CD) verwendet und enthalten 2336 Bytes. Der Parameter arg ist ein Zeiger auf eine cdrom_read Struktur. Achtung: Nicht alle Geräte können diese Sektortypen lesen, und nicht alle Treiber bieten diese Funktion an. CDROMREADMODE1 (0x430d): Dieses Kommando ermöglicht das Lesen von Modus-1 Sektoren. Solche Sektoren sind 2048 Bytes groß, und werden auf normalen CD-ROMs benutzt. Der Parameter arg ist ein Zeiger auf eine cdrom_read-Struktur. Achtung: Nicht alle Geräte können diese Sektortypen lesen, und nicht alle Treiber bieten diese Funktion an. CDROMPREVENTREMOVAL (0x430e): Dieses Kommando sperrt die Auswurffunktion des entsprechenden CD-ROMs. Dies kann z.B. nützlich sein, wenn das Gerät an einem öffentlichen Ort steht, und man dem CD-Klau vorbeugen will. CDROMALLOWRMOVAL (0x430f): Dieses Kommando gibt den Auswurf des entsprechenden CD-ROMs wieder frei. CDROMAUDIOCTRL (0x4310): Diese Kommando erlaubt es, die Lautstärke und Kanalzuordnungen der einzelnen Audio-Kanäle zu verändern. Der Parameter arg ist ein Zeiger auf eine cdrom_audioctrl-Struktur. Indem man die Komponente set dieser Struktur auf den Wert Null setzt, können die aktuellen Einstellungen erfragt werden. Achtung: Das Verstellen der Lautstärke ist nicht bei allen Geräten möglich! CDROMREADDA (0x4311): Dieses Kommando ermöglicht das Lesen von Digital-Audio (DA) Sektoren. Solche Sektoren sind 2352 Bytes groß, und enthalten pro Sektor 588 Samples im 16-Bit-Stereo-PCM Format. Der Parameter arg ist ein Zeiger auf eine cdrom_read Struktur. Achtung: Nicht alle Geräte können diese Sektortypen lesen, und nicht alle Treiber bieten diese Funktion an. CDROMGETMCN (0x4313): Dieses Kommando ermittelt die Media Catalog Number, die theoretisch benutzt werden kann, um eine CD einwandfrei zu identifizieren. Leider ist diese Information auf den allerwenigsten CDs vorhanden. Der Parameter arg ist ein Zeiger auf eine cdrom_mcn-Struktur. CDROMGETTISRC (0x4314): Dieses Kommando ermittelt den Track-International-Standard Recording-Code, der eine eindeutige Kennzeichnung für einzelne Tracks darstellen soll. Der Parameter arg ist ein Zeiger auf eine cdrom_tisrc-Struktur. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04 und
MagiC ab Version 3.0.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding Fdup Flock Fopen Fxattr Pgetpgrp Psetpgrp
Metaioctl CD-ROM Definitionen
|
C: | int32_t Fcntl ( int16_t fh, int32_t arg, int16_t cmd );
|
Assembler: |
move.w cmd,-(sp) ; Offset 8 move.l arg,-(sp) ; Offset 4 move.w fh,-(sp) ; Offset 2 move.w #260,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »file create« - Datei anlegen.
| ||||||||||||||||||
Gemdosnummer: | 60
| ||||||||||||||||||
Deklaration: | int16_t Fcreate ( const int8_t *fname, int16_t attr );
| ||||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fcreate legt eine neue Datei mit dem
angegebenen Namen und Attributen an oder löscht den Inhalt einer
vorhandenen. Es gilt:
Hinweis: Im Netzwerk setzt das Erzeugen einer Datei die Exclusivität. Ob das zugrundeliegende GEMDOS netzwerkfähig ist, kann über den Cookie _FLK ermittelt werden. Anmerkung zu MagiC: Ist Bit-3 in attr gesetzt, wird die XFS-Funktion xfs_wlabel aufgerufen. Wenn diese Funktion ohne Fehler ausgeführt werden kann, wird als Rückgabewert 0x0000fffc zurückgegeben. Dies entspricht einem Handle für die Datei NUL: bzw. U:\DEV\NULL. Dieses Feature ist jedoch nur noch aus Kompatibilitätsgründen vorhanden; ab MagiC 3 sollte besser auf die Funktion Dwritelabel zurückgegriffen werden. Die angegebenen Attribute existieren nur unter DOS-Dateisystemen und werden von anderen Dateisystemen ignoriert oder simuliert. Beim Macintosh Dateisystem (HFS) wird z.B. nur Bit-0 von attr unterstützt. Symbolische Links werden übrigens von dieser Funktion dereferenziert, d.h. wenn die Datei bereits als symb. Link existiert, wird die von diesem Link referenzierte Datei auf die Länge Null gesetzt. | ||||||||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||||||||
Verfügbar: | Alle GEMDOS Versionen. Wird mit GEMDOS Version 0.13 eine
schreibgeschützte Datei angelegt, wird ein unbrauchbares Handle
zurück geliefert. GEMDOS Versionen kleiner 0.15 erlauben
fälschlicherweise mehr als einen Diskettenname auf einer Diskette.
| ||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||
Querverweis: | Binding Fopen XFS-Konzept in MagiC
|
C: | int16_t Fcreate ( const int8_t *fname, int16_t attr );
|
Assembler: |
move.w attr,-(sp) ; Offset 6 pea fname ; Offset 2 move.w #60,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
GFA-Basic | Handle%=Gemos(&H3c,L:fname%,W:attr)
|
Name: | »file date and time« - Uhrzeit und Datum einer Datei
ermitteln oder setzen.
| ||||||||||||||
Gemdosnummer: | 87
| ||||||||||||||
Deklaration: | void Fdatime ( DOSTIME *timeptr, int16_t handle, int16_t wflag
);
| ||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fdatime liest bzw. setzt Datum und Uhrzeit
der Erstellung einer Datei. Es gilt:
Hinweis: Aufgrund einiger Fehler in älteren Versionen des GEMDOS, sollte die Funktion wie folgt angewendet werden:
| ||||||||||||||
Ergebnis: | Die Funktion liefert kein direktes Ergebnis.
| ||||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||
Querverweis: | Binding Tgettime Tsettime
|
C: | void Fdatime ( DOSTIME *timeptr, int16_t handle, int16_t wflag
);
|
Assembler: |
move.w wflag,-(sp) ; Offset 8 move.w handle,-(sp) ; Offset 6 pea timeptr ; Offset 2 move.w #87,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H57,L:timeptr%,W:handle%,W:wflag%)
|
Name: | »file delete« - Datei löschen.
| ||||||
Gemdosnummer: | 65
| ||||||
Deklaration: | int16_t Fdelete ( const int8_t *fname );
| ||||||
Beschreibung: | Die GEMDOS-Routine Fdelete löscht die mit fname
bezeichnete Datei.
Hinweis: Die Funktion sollte nicht auf geöffnete Dateien angewendet werden. Ab MagiC 4 funktioniert das Löschen auch bei Dateien mit den Attributen 'Hidden' und 'System'. In MagiC werden ferner keine symbolischen Links dereferenziert, d.h. es wird der Link gelöscht, nicht die Datei oder der Ordner, auf die der Link verweist. | ||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||
Gruppe: | Dateifunktionen
| ||||||
Querverweis: | Binding Fcreate
|
C: | int16_t Fdelete ( const int8_t *fname );
|
Assembler: |
pea fname ; Offset 2 move.w #65,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H41,L:fname%)
|
Name: | »Fdirfd« - Return a file descriptor from a directory handle.
|
Gemdosnummer: | 387 (0x0183)
|
Deklaration: | int16_t Fdirfd ( int32_t handle );
|
Beschreibung: | The function Fdirfd returns a file descriptor from the
specified directory handle.
|
Ergebnis: | Die Funktion liefert die entsprechende Dateikennung, oder eine
negative Fehlermeldung zurück.
|
Verfügbar: | Sie steht ab FreeMiNT 1.17 zur Verfügung.
|
Gruppe: | Dateifunktionen
|
Querverweis: | Binding Dopendir Dclosedir Dreaddir Drewinddir
Ffdopendir Pdomain
|
C: | int16_t Fdirfd ( int32_t handle );
|
Assembler: |
move.l handle,-(sp) ; Offset 2 move.w #387,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »file duplicate« - Datei-Handle duplizieren.
| ||||||||||||
Gemdosnummer: | 69
| ||||||||||||
Deklaration: | int16_t Fdup ( int16_t handle );
| ||||||||||||
Beschreibung: | Die GEMDOS-Routine Fdup erzeugt für einen Standardkanal (0-5)
eine Kopie und liefert eine neue Kennung (>6) für einen
Standardkanal. Es gilt:
Hinweis: In allen bekannten GEMDOS-Versionen (bis einschließlich 0.19) treten Fehler auf, wenn nach einem Fdup, ein Programm per Pexec gestartet wird. Ab MagiC 4 kann man mit Hilfe dieser Funktion auch die Gerätedateien -1,-2, -3 (systemglobal) und -4 (NULL Device) ermitteln. | ||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||
Querverweis: | Binding Fforce
|
C: | int16_t Fdup ( int16_t handle );
|
Assembler: |
move.w handle,-(sp) ; Offset 2 move.w #69,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
GFA-Basic | Phys_channel%=Gemdos(&H45,W:handle%)
|
Name: | »Ffchmod« - changes access permissions for an open file.
|
Gemdosnummer: | 258 (0x0102)
|
Deklaration: | int32_t Ffchmod ( int16_t fd, int16_t mode);
|
Beschreibung: |
|
Ergebnis: | Returns E_OK on success or a negative GEMDOS error code
otherwise.
|
Verfügbar: | Available as of FreeMiNT version 1.15.2
|
Gruppe: | Dateifunktionen
|
Querverweis: | Binding Ffchown Fchmod
|
C: | int32_t Ffchmod ( int16_t fd, int16_t mode);
|
Assembler: |
move.w mode,-(sp) ; Offset 4 move.w fd,-(sp) ; Offset 2 move.w #258,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Ffchown« - changes ownership of an open file to uid and gid
respectively.
|
Gemdosnummer: | 257 (0x0101)
|
Deklaration: | int32_t Ffchown ( int16_t fd, int16_t uid, int16_t gid );
|
Beschreibung: | This function changes ownership of an open file to uid and gid
respectively.
A non privileged process can only change the ownership of a file that is owned by this user to the effective group id of the process or one of its supplementary groups. |
Ergebnis: | Returns E_OK on success or a negative GEMDOS error code
otherwise.
|
Verfügbar: | Available as of FreeMiNT version 1.15.2
|
Gruppe: | Dateifunktionen
|
Querverweis: | Binding Ffchmod Fchown
|
C: | int32_t Ffchown ( int16_t fd, int16_t uid, int16_t gid );
|
Assembler: |
move.w gid,-(sp) ; Offset 6 move.w uid,-(sp) ; Offset 4 move.w fd,-(sp) ; Offset 2 move.w #257,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Ffdopendir« - Duplicate a directory handle from a file
descriptor.
| ||||||
Gemdosnummer: | 386 (0x182)
| ||||||
Deklaration: | int32_t Ffdopendir ( int16_t fd );
| ||||||
Beschreibung: | The function Ffdopendir duplicates a directory handle of a
opened directory by specifying its file descriptor. The flag
of the directory with ID fd is inherited by the new directory
handle.
| ||||||
Ergebnis: | Die Funktion liefert im Erfolgsfall eine 32bit
Verzeichnis-Handle. Diese darf auch negativ sein, enthält aber auf
keinen Fall den Wert 0xff im obersten Byte, wodurch es von Fehlern
unterschieden werden kann.
Im Fehlerfall sind folgende Rückgabewerte möglich:
| ||||||
Verfügbar: | Sie steht ab FreeMiNT 1.17 zur Verfügung.
| ||||||
Gruppe: | Dateifunktionen
| ||||||
Querverweis: | Binding Dopendir Dclosedir Dreaddir Drewinddir Fdirfd
Pdomain
|
C: | int32_t Ffdopendir ( int16_t fd );
|
Assembler: |
move.w fd,-(sp) ; Offset 2 move.w #386,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »file force« - Standard-Datei umleiten.
| ||||||||||||||||||||||||||
Gemdosnummer: | 70
| ||||||||||||||||||||||||||
Deklaration: | int16_t Fforce ( int16_t stdh, int16_t nonstdh );
| ||||||||||||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fforce lenkt einen Standardkanal auf einen
beliebigen anderen Kanal um. Es gilt:
Unter MiNT können auch die folgenden Kanäle umgeleitet werden:
Hinweis: Ab MagiC 4 können über diese Funktion auch die Gerätedateien -1,-2 und -3 (systemglobal) umgelenkt werden. Das NULL-Device (-4) darf allerdings nicht umgeleitet werden. Um etwa Bildschirmausgaben auf einen Drucker umzuleiten kann eine Konstruktion wie Fforce(1, Fdup(3)) benutzt werden. | ||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||||||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||||||||||
Bemerkung: | Diese Funktion wird oft benutzt, um die Eingabe oder Ausgabe
eines Child Prozess umzuleiten. Sie sollte zusammen mit Fdup benutzt
werden, um das Standardhandle wiederherzustellen, bevor sich der Child
Prozess beendet. Dabei muß beachtet werden, daß jedes Dateihandle,
das auf ein Standardhandle (z.B. con:) umgeleitet wird, automatisch
geschlossen wird wenn sich der Child Prozess beendet und nicht vom
Parent geschlossen werden darf.
| ||||||||||||||||||||||||||
Querverweis: | Binding Fdup Verzeichnis U:\DEV
|
C: | int16_t Fforce ( int16_t stdh, int16_t nonstdh );
|
Assembler: |
move.w nonstdh,-(sp) ; Offset 4 move.w stdh,-(sp) ; Offset 2 move.w #70,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H46,W:stdh%,W:nonstdh%)
|
Name: | »Ffstat64« - erweiterte Fileattribute einer geöffneten Datei
ermitteln.
| ||||||
Gemdosnummer: | 349 (0x15d)
| ||||||
Deklaration: | int32_t Ffstat64 ( int16_t fd, STAT *stat );
| ||||||
Beschreibung: | Die Funktion ermittelt die erweiterten Attribute der Datei,
deren Dateihandle in fd angegeben ist, und speichert diese in
stat.
Hinweis: Diese Funktion ist äquivalent zu einem Aufruf von Fcntl (Modus F_STAT64). | ||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||
Verfügbar: | Sie steht ab FreeMiNT 1.16 zur Verfügung.
| ||||||
Gruppe: | Dateifunktionen
| ||||||
Querverweis: | Binding Fattrib Fsnext Fstat64 STAT
|
C: | int32_t Ffstat64 ( int16_t d, STAT *stat );
|
Assembler: |
pea stat ; Offset 4 move.w fd,-(sp) ; Offset 2 move.w #349,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea 8(sp),sp ; Stack korrigieren |
Name: | »Fgetchar« - Zeichen aus einer Datei lesen.
| ||||||||||
Gemdosnummer: | 263
| ||||||||||
Deklaration: | int32_t Fgetchar ( int16_t fh, int16_t mode );
| ||||||||||
Beschreibung: | Die Funktion liest ein Zeichen aus der Datei mit der Handle
fh. Der Parameter mode ist nur dann von Interesse,
wenn die geöffnete Datei ein (Pseudo-)Terminal ist. Für diesen Fall
gelten die folgenden Werte:
Der ASCII-Wert des gelesenen Zeichens wird im Low-Byte des Funktionsergebnisses abgelegt. Für den Fall, daß die Datei ein (Pseudo-)Terminal ist, werden Scan-Code und Shift-Status wie bei Bconin zurückgeliefert. Die einzelnen Modi von mode können natürlich auch durch eine ODER-Operation verknüpft werden. Achtung: Diese Funktion ist optional, daher darf ein Aufruf mit EINVFN beantwortet werden. | ||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Bconin Cconin Cauxin Fputchar Fread
|
C: | int32_t Fgetchar ( int16_t fh, int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 4 move.w fh,-(sp) ; Offset 2 move.w #263,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »get disk transfer address« - ermittelt den
Übertragungsbereich für Diskettenoperationen.
|
Gemdosnummer: | 47
|
Deklaration: | DTA *Fgetdta ( void );
|
Beschreibung: | Die GEMDOS-Routine Fgetdta ermittelt die Adresse eines Buffers
für Fsfirst und Fsnext.
|
Ergebnis: | Die Funktion liefert als Ergebnis die Adresse der DTA
(Disk Transfer Address).
|
Verfügbar: | Alle GEMDOS Versionen.
|
Gruppe: | Dateifunktionen
|
Bemerkung: | Nach dem Start eines Programms überlappt dessen DTA die
Komamndozeile. Wird keine neue DTA angelegt, überschreibt jeder
Aufruf von Fsfirst oder Fsnext die Kommandozeile des Programms. Um
dies zu vermeiden, sollte vor dem ersten Aufruf von Fsfirst oder
Fsnext mit Fsetdta eine neue DTA angelegt werden. Vorsicht ist
geboten, wenn die DTA als lokale oder Auto-Variable angelegt wird und
der ursprüngliche Zustand nicht wiederhergestellt wurde, bevor der
Gültigkeitsbereich der Variable verlassen wird.
|
Querverweis: | Binding Fsetdta Fsfirst Fsnext DTA
|
C: | DTA *Fgetdta ( void );
|
Assembler: |
move.w #47,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #2,sp ; Stack korrigieren |
GFA-Basic | Pointer%=Gemdos(&H2F)
|
Name: | »Finstat« - Eingabestatus für ein File festlegen.
| ||||
Gemdosnummer: | 261
| ||||
Deklaration: | int32_t Finstat ( int16_t fh );
| ||||
Beschreibung: | Die Funktion Finstat gibt die maximale Anzahl der Bytes
zurück, die aus der Datei mit dem Handle fh ohne zu Warten
gelesen werden können.
Wenn die Anzahl der Bytes nicht genau angegeben werden kann, wird der Wert 1 zurückgeliefert. Hinweis: In MagiC versucht der Kernel zunächst, den Aufruf auf Fcntl (FIONREAD) zurückzuführen. Wenn diese Subfunktion von dev_ioctl nicht existiert (d.h. der Dateitreiber liefert EINVFN), wird dev_stat aufgerufen. In diesem Fall kann nur die Aussage getroffen werden "Zeichen liegt an" (Rückgabe == 1) bzw. "kein Zeichen liegt an" (Rückgabe == 0). FAT-Dateien und Shared Memory liefern die tatsächliche Dateilänge minus der aktuellen Position. Pipes liefern die Anzahl der vorhandenen Bytes im Block. | ||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04 und
in MagiC ab Version 3.0.
| ||||
Gruppe: | Dateifunktionen
| ||||
Querverweis: | Binding Cauxis Cconis Fcntl Foutstat
|
C: | int32_t Finstat ( int16_t fh );
|
Assembler: |
move.w fh,-(sp) ; Offset 2 move.w #261,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Flink« - erzeugt einen neuen (Hard-)Link auf ein File.
| ||||||||||
Gemdosnummer: | 301
| ||||||||||
Deklaration: | int32_t Flink ( int8_t *oldname, int8_t *newname );
| ||||||||||
Beschreibung: | Die Funktion Flink erzeugt einen neuen Namen (newname)
für die Datei mit dem Namen oldname. Die Datei kann
anschließend unter beiden Namen angesprochen werden, und das Löschen
(per Fdelete) eines Namens hat keinen Einfluß auf den anderen.
Zu beachten ist, daß sich oldname und newname auf demselben physikalischen Laufwerk befinden müssen, und nicht alle Filesysteme die Möglichkeit bieten, Links zu setzen. | ||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Frename Fsymlink XFS-Konzept in MagiC
|
C: | int32_t Flink ( int8_t *oldname, int8_t *newname );
|
Assembler: |
pea newname ; Offset 6 pea oldname ; Offset 2 move.w #301,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »file record locking« - Teile einer Datei sperren oder
freigeben.
| ||||||||||||||||
Gemdosnummer: | 92
| ||||||||||||||||
Deklaration: | int32_t Flock ( int16_t handle, int16_t mode, int32_t start,
int32_t length );
| ||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Flock dient dazu, Teile von Dateien gegen
den Zugriff von anderen Prozessen zu schützen. Es gilt:
Achtung: Diese Funktion ist optional, daher darf ein Aufruf mit EINVFN beantwortet werden. Es sollte insbesondere beachtet werden, daß Flock nicht auf allen installierten Dateisystemen zur Verfügung stehen muss. | ||||||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||||||
Verfügbar: | Nur vorhanden wenn der Cookie _FLK gesetzt ist.
| ||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||
Querverweis: | Binding Fcreate Fopen Fclose Fdelete Ptermres
F_SETLK
|
C: | int32_t Flock ( int16_t handle, int16_t mode, int32_t start,
int32_t length );
|
Assembler: |
move.l length,-(sp) ; Offset 10 move.l start,-(sp) ; Offset 6 move.w mode,-(sp) ; Offset 4 move.w handle,-(sp) ; Offset 2 move.w #92,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $E(sp),sp ; Stack korrigieren |
Name: | »Fmidipipe« - MIDI Ein/Ausgabe umlenken.
| ||||||||
Gemdosnummer: | 294
| ||||||||
Deklaration: | int32_t Fmidipipe ( int16_t pid, int16_t in, int16_t out );
| ||||||||
Beschreibung: | Die Funktion verändert die GEMDOS-Handles für MIDI Ein- und
Ausgabe für den Prozeß mit der Kennung pid. Die Parameter
in bzw. out beschreiben die GEMDOS-Handles, welche
für den angegebenen Prozeß die MIDI-Eingabe bzw. -ausgabe
übernehmen.
Im Fall pid = 0, wird der aktuelle Prozeß benutzt. Dann ist der Funktionsaufruf äquivalent zu den folgenden beiden Zeilen: Fforce (-4, in); Fforce (-5, out); | ||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fdup Fforce Test auf Pipes
|
C: | int32_t Fmidipipe ( int16_t pid, int16_t in, int16_t out );
|
Assembler: |
move.w out,-(sp) ; Offset 6 move.w in,-(sp) ; Offset 4 move.w pid,-(sp) ; Offset 2 move.w #294,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
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:
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:
Hinweis: Für einige Geräte existieren bereits Standardkanal-Nummern, so daß es nicht notwendig ist, Fopen aufzurufen. Im einzelnen:
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:
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
|
C: | int32_t Fopen ( const int8_t *fname, int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 6 pea fname ; Offset 2 move.w #61,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
GFA-Basic | Handle%=Gemdos(&H3D,L:fname%,W:mode%)
|
Name: | »Foutstat« - Ausgabestatus für ein File festlegen.
| ||||
Gemdosnummer: | 262
| ||||
Deklaration: | int32_t Foutstat ( int16_t fh );
| ||||
Beschreibung: | Die Funktion Foutstat gibt die Anzahl der Bytes zurück, die in
die Datei mit der Handle fh ausgegeben werden können, ohne
den entsprechenden Prozeß zu blockieren.
Wenn die Anzahl der Bytes nicht genau angegeben werden kann, wird der Wert 1 zurückgeliefert. Hinweis: In MagiC versucht der Kernel zunächst, den Aufruf auf Fcntl (FIONWRITE) zurückzuführen. Wenn diese Subfunktion von dev_ioctl nicht existiert (d.h. der Dateitreiber liefert EINVFN), wird dev_stat aufgerufen. In diesem Fall kann nur die Aussage getroffen werden "ein Zeichen kann geschrieben werden" (Rückgabe == 1) bzw. "kein Zeichen kann geschrieben werden" (Rückgabe == 0). FAT-Dateien liefern stets den Wert 1, Shared Memory die tatsächliche Dateilänge minus der aktuellen Position. Pipes liefern die Anzahl der noch freien Bytes im Block. | ||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
Derzeit liefert diese Funktion immer 1 für Dateien auf Massenspeicher zurück. | ||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04 und
in MagiC ab Version 3.0.
| ||||
Gruppe: | Dateifunktionen
| ||||
Querverweis: | Binding Cauxos Cconos Cprnos Fcntl Finstat
|
C: | int32_t Foutstat ( int16_t fh );
|
Assembler: |
move.w fh,-(sp) ; Offset 2 move.w #262,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
Name: | »Fpipe« - erzeugt eine Pipe.
| ||||||||
Gemdosnummer: | 256
| ||||||||
Deklaration: | int32_t Fpipe ( int16_t usrh[2] );
| ||||||||
Beschreibung: | Die Funktion erzeugt eine Pipe, die für
Interprozeß-Kommunikation (IPC) benutzt werden kann. Sie wird
normalerweise von Shells benutzt, die den Input und Output ihres
Childs umleiten möchten. Vor dem Start des Childs leitet die Shell
ihren input und output (falls nötig) auf das Leseende und Schreibende
der neu erzeugten Datei um. Bei erfolgreichem Aufruf werden in
usrh zwei GEMDOS-Handles geliefert.
usrh[0] ist dabei das Handle für das Leseende der Pipe, (Read-Only) während usrh[1] das Handle für das Schreibende (Write-Only) der Pipe kennzeichnet. Die auf diese Weise erzeugte Pipe wird im Verzeichnis U:\PIPE als Pseudo-Datei angelegt und mit dem Namen 'sys$pipe.xxx' versehen, wobei xxx als dreistellige ganze Zahl aufzufassen ist. | ||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fmidipipe Test auf Pipes
|
C: | int32_t Fpipe ( int16_t usrh[2] );
|
Assembler: |
pea usrh ; Offset 2 move.w #256,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Fpoll« - Enquiry of the file status with timeout.
| ||||||||||||||||||||||
Opcode: | 346
| ||||||||||||||||||||||
Syntax: | int32_t Fpoll (POLLFD *fds, uint32_t nfds, uint32_t timeout );
| ||||||||||||||||||||||
Description: | Fpoll() performs a similar task to Fselect: it waits for one of
a set of file descriptors to become ready to perform I/O.
The set of file descriptors to be monitored is specified in the fds argument, which is an array of structures of the following form: typedef struct pollfd { int32_t fd; /* file descriptor */ uint16_t events; /* requested events */ uint16_t revents; /* returned events */ } POLLFD; The caller should specify the number of items in the fds array in nfds. The field fd contains a file descriptor for an open file. If this field is negative, then the corresponding events field is ignored and the revents field returns zero. (This provides an easy way of ignoring a file descriptor for a single poll() call: simply negate the fd field.) The field events is an input parameter, a bit mask specifying the events the application is interested in for the file descriptor fd. If this field is specified as zero, then all events are ignored for fd and revents returns zero. The field revents is an output parameter, filled by the kernel with the events that actually occurred. The bits returned in revents can include any of those specified in events, or one of the values POLLERR, POLLHUP, or POLLNVAL. (These three bits are meaningless in the events field, and will be set in the revents field whenever the corresponding condition is true.) If none of the events requested (and no error) has occurred for any of the file descriptors, then poll() blocks until one of the events occurs. The timeout argument specifies the minimum number of milliseconds that poll() will block. (This interval will be rounded up to the system clock granularity, and kernel scheduling delays mean that the blocking interval may overrun by a small amount.) Specifying a negative value in timeout means an infinite timeout. Specifying a timeout of zero causes poll() to return immediately, even if no file descriptors are ready. The bits that may be set/returned in events and revents are defined in <poll.h>:
When compiling with _XOPEN_SOURCE defined, one also has the following, which convey no further information beyond the bits listed above:
MiNT(Lib) also knows about, but does not use POLLMSG. | ||||||||||||||||||||||
Return value: | The function can return the following results:
| ||||||||||||||||||||||
Availability: | This function is available as of FreeMiNT 1.15.12.
| ||||||||||||||||||||||
Group: | File functions
| ||||||||||||||||||||||
See also: | Binding Fselect Finstat Foutstat
|
C: | int32_t Fpoll (POLLFD *fds, uint32_t nfds, uint32_t timeout );
|
Assembler: |
move.l timeout,-(sp) ; Offset 10 move.l nfds,-(sp) ; Offset 6 pea fds ; Offset 2 move.w #346,-(sp) ; Offset 0 trap #1 ; GEMDOS lea 14(sp),sp ; Correct stack |
Name: | »Fputchar« - Zeichen in ein File ausgeben.
| ||||||||||
Gemdosnummer: | 264
| ||||||||||
Deklaration: | int32_t Fputchar ( int16_t fh, int32_t ch, int16_t mode );
| ||||||||||
Beschreibung: | Die Funktion schreibt ein Zeichen in die Datei mit dem Handle
fh. Der Parameter mode ist nur von Bedeutung, wenn die
Datei ein (Pseudo-)Terminal ist:
Wenn die Datei ein (Pseudo-)Terminal ist, können alle 4 Bytes übertragen werden. Auf diese Art und Weise ist es möglich, simulierte BIOS-Scancodes und Shift-Statusmeldungen zu übertragen. Anderenfalls wird nur das Low-Byte von ch übertragen. | ||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Bconout Cauxout Cconout Crawio Fgetchar
Fwrite
|
C: | int32_t Fputchar ( int16_t fh, int32_t ch, int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 8 move.l ch,-(sp) ; Offset 4 move.w fh,-(sp) ; Offset 2 move.w #264,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »file read« - Datei lesen.
| ||||||||||
Gemdosnummer: | 63
| ||||||||||
Deklaration: | int32_t Fread ( int16_t handle, int32_t count, void *buf );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Fread liest eine bestimmte Anzahl von Bytes
aus einer Datei. Es gilt:
Hinweis: In allen GEMDOS-Versionen < 0.15 kommt es zum System-Stillstand, wenn der Parameter count den Wert 0 besitzt. Beim Lesen von Standardkanälen dürfen maximal 16383 Zeichen gelesen werden. | ||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis die Anzahl der gelesenen
Zeichen. Die Anazhl gelesener Bytes kann kleiner als count
sein, wenn ein EOF (end of file) erreicht wird. Im Fehlerfall gilt:
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Fwrite FIONREAD
|
C: | int32_t Fread ( int16_t handle, int32_t count, void *buf );
|
Assembler: |
pea buf ; Offset 8 move.l count,-(sp) ; Offset 4 move.w handle,-(sp) ; Offset 2 move.w #63,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H3F,W:handle%,L:count%,L:buf%)
|
Name: | »Freadlink« - symbolischen Link verfolgen.
| ||||||||||
Gemdosnummer: | 303
| ||||||||||
Deklaration: | int32_t Freadlink ( int16_t bufsiz, int8_t *buf, int8_t *name
);
| ||||||||||
Beschreibung: | Die Funktion ermittelt den Dateinamen des symbolischen Links
name. Dies ist der Name, der bei Fsymlink als erster Parameter
angegeben wurde.
Der Name wird im Puffer buf abgelegt, der eine Länge von bufsiz Zeichen umfaßt. | ||||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Fsymlink XFS-Konzept in MagiC
|
C: | int32_t Freadlink ( int16_t bufsiz, int8_t *buf, int8_t *name
);
|
Assembler: |
pea Name ; Offset 10 pea buf ; Offset 6 move.w bufsiz,-(sp) ; Offset 2 move.w #303,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »file rename« - Datei umbenennen.
| ||||||||
Gemdosnummer: | 86
| ||||||||
Deklaration: | int32_t Frename ( const int8_t *oldname, const int8_t *newname
);
| ||||||||
Beschreibung: | Die GEMDOS-Routine Frename dient zum Umbenennen von Dateien.
Der neue Name darf auch einen kompletten Zugriffspfad innerhalb des
betreffenden Laufwerks enthalten. In diesem Fall wird die Datei
verschoben. Es gilt:
Hinweis: Ab GEMDOS-Version 0.15 ist es möglich auch den Namen von Verzeichnissen zu verändern. Diese können jedoch nicht verschoben werden. Man sollte es vermeiden, Dateien umzubenennen, die bereits geöffnet sind. Anmerkung zu MagiC: Es ist Sache des XFS zu entscheiden, ob Verzeichnisse umbenannt oder verschoben werden dürfen. Das integrierte DOS-XFS erlaubt erst seit MagiC 5 ein Verschieben von Verzeichnissen. | ||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fdelete XFS-Konzept in MagiC
|
C: | int32_t Frename ( const int8_t *oldname, const int8_t *newname
);
|
Assembler: |
pea newname ; Offset 8 pea oldname ; Offset 4 move.w #0,-(sp) ; Offset 2 move.w #86,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren Hinweis: Der Null-Parameter wird beim C-Binding normalerweise automatisch hinzugefügt. |
GFA-Basic | Fehler%=Gemdos(&H56,W:0,L:oldname%,L:newname%)
|
Name: | »file seek« - Dateiposition verschieben.
| ||||||||||||||||
Gemdosnummer: | 66
| ||||||||||||||||
Deklaration: | int32_t Fseek ( int32_t offset, int16_t handle, int16_t
seekmode );
| ||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fseek erlaubt es, den Dateizeiger innerhalb
einer Datei neu zu positionieren. Es gilt:
Hinweis: Auf Pipes angewandt liefert die Funktion den Wert EACCDN; damit können Applikationen Geräte und Pipes unterscheiden. | ||||||||||||||||
Ergebnis: | Die Funktion liefert als positives Ergebnis die neue Position
innerhalb der Datei, oder eine negative Fehlermeldung.
| ||||||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||
Querverweis: | Binding Fread Fwrite Test auf Pipes
|
C: | int32_t Fseek ( int32_t offset, int16_t handle, int16_t
seekmode );
|
Assembler: |
move.w seekmode,-(sp) ; Offset 8 move.w handle,-(sp) ; Offset 6 move.l offset,-(sp) ; Offset 2 move.w #66,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H42,L:offset%,W:handle%,W:seekmode%)
|
Name: | »file seek« - 64 bit Dateiposition verschieben.
| ||||||||||||||||||||
Gemdosnummer: | 332 (0x014c)
| ||||||||||||||||||||
Deklaration: | int32_t Fseek64 ( int32_t hioffset, uint32_t lowoffset, int16_t
handle, int16_t seekmode, int64_t *newpos );
| ||||||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fseek64 erlaubt es, den Dateizeiger
innerhalb einer Datei neu zu positionieren. Es gilt:
Hinweis: Auf Pipes angewandt liefert die Funktion den Wert EACCDN; damit können Applikationen Geräte und Pipes unterscheiden. Hinweis: At the moment Fseek64() is only a wrapper around Fseek() as there is no 64bit XFS/XDD support. If the specified offset is greater than 2147483647L (2^31-1), the call fails and returns EBADARG. | ||||||||||||||||||||
Ergebnis: | Die Funktion liefert als positives Ergebnis die neue Position
innerhalb der Datei, oder eine negative Fehlermeldung.
| ||||||||||||||||||||
Verfügbar: | Sie steht ab FreeMiNT 1.15.10 zur Verfügung.
| ||||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||||
Querverweis: | Binding Fread Fseek Fwrite Test auf Pipes
|
C: | int32_t Fseek64 ( int32_t hioffset, uint32_t lowoffset, int16_t
handle, int16_t seekmode, int64_t *newpos );
|
Assembler: |
pea newpos ; Offset 14 move.w seekmode,-(sp) ; Offset 12 move.w handle,-(sp) ; Offset 10 move.l lowoffset,-(sp) ; Offset 6 move.l hioffset,-(sp) ; Offset 2 move.w #332,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $12(sp),sp ; Stack korrigieren |
GFA-Basic |
Fehler%=Gemdos(&H14C,L:hioffset%,L:lowoffset%,W:handle%,W:seekmode%,L:newpos%)
|
Name: | »Fselect« - Abfrage des Dateistatus mit Timeout.
| ||||||
Gemdosnummer: | 285
| ||||||
Deklaration: | int32_t Fselect ( uint16_t timeout, int32_t *rfds, int32_t
*wfds, ((int32_t) 0) );
| ||||||
Beschreibung: | Die Funktion kontrolliert, welche geöffneten Dateien zum Lesen
bzw. Schreiben bereit sind. Der Parameter rfds zeigt auf ein
Langwort, welches eine Menge von GEMDOS File-Deskriptoren
repräsentiert.
In diesem Langwort ist das Bit n gesetzt, wenn der File-Deskriptor n auf Eingabe überprüft werden soll. Eine leere Menge kann optional auch durch einen Nullzeiger dargestellt werden. Analog zeigt wfds auf eine Menge von File-Deskriptoren, deren Ausgabestatus überprüft werden soll. Bei Rückkehr der Funktion werden in rfds und wfds die Handles der Dateien übergeben, die zum Lesen bzw. Schreiben bereit sind, und auch überprüft werden sollten. Zur Zeit ist das einzige BIOS Gerät, das mit Fselect abgefragt werden kann, die Tastatur. Unter timeout kann angegeben werden, wieviele Millisekunden gewartet werden soll, bevor die Funktion zurückkehrt. Ein Wert von 0 bedeutet in diesem Zusammenhang, daß die Funktion wartet, bis eine der angegebenen Dateien zum Lesen bzw. Schreiben bereit ist. Beispiel:
| ||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04
sowie MagiC seit Version 3.00.
| ||||||
Gruppe: | Dateifunktionen
| ||||||
Querverweis: | Binding Finstat Foutstat
|
C: | int32_t Fselect ( uint16_t timeout, int32_t *rfds, int32_t
*wfds, ((int32_t) 0) );
|
Assembler: |
move.l dummy,-(sp) ; Offset 12 pea wfds ; Offset 8 pea rfds ; Offset 4 move.w timeout,-(sp) ; Offset 2 move.w #285,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $10(sp),sp ; Stack korrigieren |
Name: | »set disk transfer address« - Setzen der Adresse für den
Übertragungsbereich für Diskettenoperationen.
|
Gemdosnummer: | 26
|
Deklaration: | void Fsetdta ( DTA *buf );
|
Beschreibung: | Die GEMDOS-Routine Fsetdta setzt die Adresse auf einen
Speicherblock, der als neue DTA benutzt wird. Der Parameter
buf ist ein Zeiger auf diese Struktur.
Hinweis: Bei Programmstart wird die DTA ab dem Offset 0x80 in der Basepage eingerichtet. |
Ergebnis: | Die Funktion liefert kein Ergebnis.
|
Verfügbar: | Alle GEMDOS Versionen.
|
Gruppe: | Dateifunktionen
|
Querverweis: | Binding Fgetdta Fsfirst BASEPAGE DTA
|
C: | void Fsetdta ( DTA *buf );
|
Assembler: |
pea buf ; Offset 2 move.w #26,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H1A,L:buf%)
|
Name: | »search first file« - ersten Dateieintrag suchen.
| ||||||||||||||||||||||||||
Gemdosnummer: | 78
| ||||||||||||||||||||||||||
Deklaration: | int32_t Fsfirst ( const int8_t *filename, int16_t attr );
| ||||||||||||||||||||||||||
Beschreibung: | Die GEMDOS-Routine Fsfirst erlaubt es, Informationen über
Dateien oder Verzeichnisse zu ermitteln. Es gilt:
Der Pfadname kann auch die Joker '*' und '?' enthalten. Nach Abschluß der Funktion steht der Verzeichniseintrag unter der Diskettenübertragungsadresse DTA, die mit Fgetdta und Fsetdta ermittelt bzw. festgelegt werden kann. Die Informationen können dann der Struktur DTA entnommen werden. Die DTA muss durch Fsfirst() initialisiert werden! Hinweis: Falls das Programm in der MiNT-Domain läuft, liefert Fsfirst 'lower case' Filenamen. Da es Filesysteme gibt die case sensitiv arbeiten, sollten Sie diese Umwandlung auf keinen Fall manuell durchführen. Wenn Sie hingegen unbedingt 'upper case' Filenamen benötigen, sollten Sie Ihr Programm per Pdomain in der TOS-Domain laufen lassen. Anmerkung zu MagiC: Ist Bit-3 von attr gesetzt, so ruft der Kernel die XFS-Funktion xfs_rlabel auf. Das aufrufende Anwenderprogramm kann damit leider unter MagiC nicht mehr Datum und Uhrzeit des Disknamens ermitteln. Der Kernel setzt alle Felder auf 0, und die Funktion Fsnext darf dann nicht ausgeführt werden. Ab MagiC 3 wird stattdessen die Funktion Dreadlabel benutzt, die auch mit langen Dateinamen zurechtkommt. Ist Bit-3 von attr nicht gesetzt, wird wie in TOS nach Dateien gesucht. Ist eine Datei ein symbolischer Link, ruft der DOS-Kernel die Funktion Fxattr auf, um den Link zu verfolgen. Die von Fxattr gelieferten Werte werden dann in die DTA kopiert. Achtung: MagiC ist nicht immer in der Lage, relative symbolische Links während eines Fsfirst/Fsnext korrekt auszuwerten. Es bieten sich 3 Auswege an:
MiNT behandelt diesen Fall zwar korrekt, jedoch auf Kosten eines gewaltigen Aufwands. Das Fsfirst/next-Konzept ist grundsätzlich veraltet, ineffektiv und unsicher, und sollte sowohl in MiNT als auch in MagiC vermieden werden. | ||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||||||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||||||||||||||||
Gruppe: | Dateifunktionen
| ||||||||||||||||||||||||||
Querverweis: | Binding Fgetdta Fsetdta Fsnext DTA rekursive Suche XFS-Konzept
|
C: | int32_t Fsfirst ( const int8_t *filename, int16_t attr );
|
Assembler: |
move.w attr,-(sp) ; Offset 6 pea filename ; Offset 2 move.w #78,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H4E,L:filename%,W:attr%)
|
Name: | »search next file« - nächsten Dateieintrag suchen.
|
Gemdosnummer: | 79
|
Deklaration: | int16_t Fsnext ( void );
|
Beschreibung: | Die GEMDOS-Routine Fsnext sucht den nächsten Dateieintrag auf
den die von Fsfirst gemachte Spezifizierung paßt. Die Funktion wird
nach einem Aufruf von Fsfirst so oft aufgerufen, wie sie Dateien
findet, die zur angegebenen Spezifizierung passen.
Diese Funktion benutzt die DTA der Applikation, die nach dem Start in der Kommandozeile liegt. Fird diese Funktion benutzt, ohne eine neue DTA zu setzen, wird die Kommandozeile überschrieben. Hinweis: Falls das Programm in der MiNT-Domain läuft, liefert Fsnext 'lower case' Filenamen. Da es Filesysteme gibt die case sensitiv arbeiten, sollten Sie diese Umwandlung auf keinen Fall manuell durchführen. Wenn Sie hingegen unbedingt 'upper case' Filenamen benötigen, sollten Sie Ihr Programm per Pdomain in der TOS-Domain laufen lassen. |
Ergebnis: | Die Funktion liefert als Ergebnis 0, wenn eine Datei gefunden
werden konnte, ansonsten eine negative Fehlermeldung.
|
Verfügbar: | Alle GEMDOS Versionen.
|
Gruppe: | Dateifunktionen
|
Querverweis: | Binding Fgetdta Fsetdta Fsfirst
|
C: | int16_t Fsnext ( void );
|
Assembler: |
move.w #79,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #2,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H4F)
|
Name: | »Fsymlink« - symbolischen Link auf ein File erzeugen.
| ||||
Gemdosnummer: | 302
| ||||
Deklaration: | int32_t Fsymlink ( int8_t *oldname, int8_t *newname );
| ||||
Beschreibung: | Die Funktion erzeugt einen symbolischen Link newname
für die Datei mit dem Namen oldname. Bei erfolgreichem Aufruf
kann die Datei anschließend unter beiden Namen angesprochen werden.
Ein Löschen per Fdelete für newname berührt die Datei
selbst nicht, sondern nur den symbolischen Link. Wird hingegen Fdelete
auf oldname angewendet, so wird die Datei wie gewohnt
gelöscht, und Zugriffe auf newname sind nicht mehr möglich.
Der Unterschied zu Hard-Links besteht darin, daß symbolische Links zwischen verschiedenen physikalischen Geräten (und damit sogar verschiedenen Filesystem-Typen) bestehen können. | ||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||
Gruppe: | Dateifunktionen
| ||||
Querverweis: | Binding Flink Freadlink Frename XFS-Konzept
|
C: | int32_t Fsymlink ( int8_t *oldname, int8_t *newname );
|
Assembler: |
pea newname ; Offset 6 pea oldname ; Offset 2 move.w #302,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Fstat64« - erweiterte Fileattribute ermitteln.
| ||||||||
Gemdosnummer: | 331 (0x14b)
| ||||||||
Deklaration: | int32_t Fstat64 ( int16_t flag, int8_t *name, STAT *stat );
| ||||||||
Beschreibung: | Die Funktion ermittelt die erweiterten Attribute der Datei,
deren vollständiger Name in name angegeben ist, und speichert
diese in stat.
Der Parameter flag gibt an, wie symbolische Links behandelt werden sollen. Es gilt:
Hinweis: Diese Funktion ist äquivalent zu einem Aufruf von Fcntl (Modus F_STAT64) mit dem Unterschied, daß statt eines Dateinamens das Handle einer bereits geöffneten Datei übergeben wird. | ||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||
Verfügbar: | Sie steht ab FreeMiNT 1.15.4 zur Verfügung.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fattrib Fsnext STAT
|
C: | int32_t Fstat64 ( int16_t flag, int8_t *name, STAT *stat );
|
Assembler: |
pea stat ; Offset 10 pea name ; Offset 6 move.w flag,-(sp) ; Offset 2 move.w #331,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »Fsync« - Synchronize a file's in-core state with storage
device.
| ||||||||
Opcode: | 259 (0x0103)
| ||||||||
Syntax: | int16_t Fsync ( int16_t handle );
| ||||||||
Description: |
Fsync() transfers ("flushes") all modified in-core data of (i.e., modified buffer cache pages for) the file referred to by the file descriptor fd to the disk device (or other permanent storage device) so that all changed information can be retrieved even after the system crashed or was rebooted. This includes writing through or flushing a disk cache if present. The call blocks until the device reports that the transfer has completed. It also flushes metadata information associated with the file (see stat(2)). Calling Fsync() does not necessarily ensure that the entry in the directory containing the file has also reached disk. For that an explicit Fsync() on a file descriptor for the directory is also needed. Warning: In MiNT this function is currently not implemented and calls Sync() instead. | ||||||||
Return value: | On success, these system call return zero. Otherwise, it
returns one of the following error codes:
| ||||||||
Availability: | Available as of FreeMiNT version 1.15.10.
| ||||||||
Group: | File functions
| ||||||||
See also: | Binding Sync
|
C: | int16_t Fsync ( int16_t handle );
|
Assembler: |
move.w handle,-(sp) ; Offset 2 move.w #259,-(sp) ; Offset 0 trap #1 ; GEMDOS addq.l #4,sp ; Correct stack |
Name: | »file write« - auf Datei schreiben.
| ||||||||||
Gemdosnummer: | 64
| ||||||||||
Deklaration: | int32_t Fwrite ( int16_t handle, int32_t count, void *buf );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Fwrite schreibt eine Anzahl von Bytes in
eine Datei. Es gilt:
Hinweis zu MagiC: Übergibt man als Anzahl der zu schreibenden Bytes den Wert 0, und in buf den Wert -1, so wird die Datei auf die aktuelle Position des Dateizeigers geschrumpft. | ||||||||||
Ergebnis: | Die Funktion liefert die Anzahl der tatsächlich geschriebenen
Bytes, oder eine der folgenden Fehlermeldungen:
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Dateifunktionen
| ||||||||||
Querverweis: | Binding Fread FIONWRITE
|
C: | int32_t Fwrite ( int16_t handle, int32_t count, void *buf );
|
Assembler: |
pea buf ; Offset 8 move.l count,-(sp) ; Offset 4 move.w handle,-(sp) ; Offset 2 move.w #64,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H40,W:handle,L:count%,L:buf%)
|
Name: | »Fxattr« - erweiterte Fileattribute ermitteln.
| ||||||||
Gemdosnummer: | 300
| ||||||||
Deklaration: | int32_t Fxattr ( int16_t flag, int8_t *name, XATTR *xattr );
| ||||||||
Beschreibung: | Die Funktion ermittelt die erweiterten Attribute der Datei,
deren vollständiger Name in name angegeben ist, und speichert
diese in xattr.
Der Parameter flag gibt an, wie symbolische Links behandelt werden sollen. Es gilt:
Hinweis: Diese Funktion ist äquivalent zu einem Aufruf von Fcntl (Modus F_STAT) mit dem Unterschied, daß statt eines Dateinamens das Handle einer bereits geöffneten Datei übergeben wird. | ||||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||||
Verfügbar: | Available when a 'MiNT' cookie with a version of at least 0.90
exists und in MagiC ab Version 3.0.
| ||||||||
Gruppe: | Dateifunktionen
| ||||||||
Querverweis: | Binding Fattrib Fsnext XFS-Konzept in MagiC
|
C: | int32_t Fxattr ( int16_t flag, int8_t *name, XATTR *xattr );
|
Assembler: |
pea xattr ; Offset 10 pea name ; Offset 6 move.w flag,-(sp) ; Offset 2 move.w #300,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |