• Dchroot | changes the root directory for the calling process |
• Dclosedir | Schließt ein Verzeichnis. |
• Dcntl | Filesystem-spezifische Operation auf Datei/Verzeichnis. |
• Dcreate | Verzeichnis anlegen. |
• Ddelete | Verzeichnis löschen. |
• Dfree | Freie und Gesamtkapazität eines Laufwerks ermitteln. |
• Dgetcwd | Verzeichnis eines Prozesses ermitteln. |
• Dgetdrv | Aktuelles Laufwerk ermitteln. |
• Dgetpath | Aktuelles Verzeichnis ermitteln. |
• Dlock | BIOS-Gerät sperren bzw. wieder freigeben. |
• Dopendir | Verzeichnis zum Lesen öffnen. |
• Dpathconf | Informationen über ein Filesystem ermitteln. |
• Dreaddir | Verzeichnis-Informationen lesen. |
• Dreadlabel | Filesystem Label lesen. |
• Drewinddir | Geöffentes Verzeichnis zurücksetzen. |
• Dsetdrv | Aktuelles Laufwerk ändern. |
• Dsetkey | Sets key/passphrase for a drive. |
• Dsetpath | Aktuelles Verzeichnis ändern. |
• Dwritelabel | Filesystem Label setzen. |
• Dxopendir | Verzeichnis zum Lesen öffnen. |
• Dxreaddir | Verzeichnis-Informationen lesen, Attribute ermitteln. |
Querverweis: Dateifunktionen XBIOS-Laufwerksfunktionen
Name: | »Dchroot« - changes the root directory for the calling
process
|
Gemdosnummer: | 330 (0x014a)
|
Deklaration: | int32_t Dchroot( int8_t *path );
|
Beschreibung: | The path parameter is a pathname of the folder that
will be the new root directory for the calling process. Directories
and files which are outside to the specified tree will be no longer
accessible.
Dchroot does not automatically change the current directory to the newly specified root. Also, the call needs root privileges to operate properly. This function is used by e.g. ftpd to limit the user privileges in accessing filesystems. |
Ergebnis: | Returns the E_OK on success or a negative GEMDOS error code
otherwise.
|
Verfügbar | Available as of FreeMiNT version 1.15.4
|
Gruppe: | Verzeichnisfunktionen
|
Querverweis: | Binding Dopendir Dreaddir MagiC
|
C: | int32_t Dchroot( int8_t *path );
|
Assembler: |
pea path ; Offset 2 move.w #330,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Dclosedir« - schließt ein Verzeichnis.
|
Gemdosnummer: | 299
|
Deklaration: | int32_t Dclosedir ( int32_t dirhandle );
|
Beschreibung: | Die Funktion schließt das Verzeichnis mit dem Handle
dirhandle.
|
Ergebnis: | Die Funktion liefert den Wert 0, falls das Verzeichnis korrekt
geschlossen werden konnte. Wenn dirhandle ungültig ist, wird
der Wert EBADF zurückgegeben.
|
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
|
Gruppe: | Verzeichnisfunktionen
|
Querverweis: | Binding Dopendir Dreaddir MagiC
|
C: | int32_t Dclosedir ( int32_t dirhandle );
|
Assembler: |
move.l dirhandle,-(sp) ; Offset 2 move.w #299,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Dcntl« - führt eine Filesystem spezifische Operation auf
einer Datei bzw. einem Verzeichnis durch.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gemdosnummer: | 304
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int32_t Dcntl ( int16_t cmd, int8_t *name, int32_t arg );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion führt das Kommando cmd auf dem File bzw.
Verzeichnis name aus. Einzelheiten sind vom Filesystem
abhängig, auf das sich name bezieht. Die Bedeutung des
Parameters arg ist wiederum von cmd abhängig.
Standardmäßig wird der Dcntl-Aufruf von den Filesystemen U:\\ und U:\DEV unterstützt. Das Unified-Filesystem U:\ kennt die folgenden Kommandos:
Das Filesystem U:\DEV kennt folgende Kommandos:
Hinweis: Die mit (*) gekennzeichneten Opcodes stehen dabei nur unter MagiC, alle anderen nur unter MiNT bzw. MultiTOS zur Verfügung. Ausnahmen: Die Opcodes FUTIME und CDROMEJECT stehen sowohl unter MiNT/MultiTOS als auch unter MagiC zur Verfügung. (1): Leider gab es Kollisionen zwischen MagiC und dem Minix-XFS für MiNT. Daher enthält MagiC ab der Version 6 neue Codes, die alten werden aber noch unterstützt. Die neuen Codes haben ein 0x6d im oberen Word, diese Kennung ist für MagiC reserviert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Der Rückgabewert ist abhängig von der gewünschten Operation
und dem zugrunde liegenden Filesystem. Bei einem Wert >= 0 ist
alles erfolgreich verlaufen. Eine Ausnahme ist der Wert bei
DEV_INSTALL, welcher entweder auf eine Informationsstruktur des
Kernels zeigt, oder aber den Wert 0 besitzt.
Bei einem ungültigen Opcode wird EINVFN zurückgeliefert. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding XFS-Konzept in MagiC Bconmap Fcntl MagiC Metaioctl
|
C: | int32_t Dcntl ( int16_t cmd, int8_t *name, int32_t arg );
|
Assembler: |
move.l arg,-(sp) ; Offset 8 pea name ; Offset 4 move.w cmd,-(sp) ; Offset 2 move.w #304,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »create directory« - Verzeichnis anlegen.
| ||||||||||
Gemdosnummer: | 57
| ||||||||||
Deklaration: | int32_t Dcreate ( CONST int8_t *path );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Dcreate legt ein Verzeichnis mit dem
Pfadnamen path an, der mit dem ASCII-Zeichen 0 abgeschlossen
sein muss.
Hinweis: Aufgrund mangelhafter Fehlerbehandlungen in GEMDOS-Versionen < 0.15 konnte u.U. das Dateisystem beschädigt werden. Ferner wurde nicht überprüft, ob eine Datei des angegebenen Namens bereits existiert. Das Atari GEMDOS Reference Manual vom 4. April 1986 warnt über die Übergabe von Pfaden mit einem Backlslash am Ende und tatsächlich liefert die Funktion bis TOS 1.0x in so einem Fall EPTHNF. Ab MagiC-3 wird der Aufruf vom Kernel weitergegeben als xfs_dcreate mit Erstellmodus Fxattr %0100000111101101 (d.h. 'directory file' mit einer Zugriffsberechtigung RWXRwXRwX). Das XFS sollte keine gleichnamigen Dateien oder Unterverzeichnisse löschen, sondern in diesem Fall den Fehlercode EACCDN liefern. Ungültige Dateinamen wie "." oder ".." müssen auch vom XFS abgefangen werden. | ||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||
Querverweis: | Binding Ddelete ASCII-Tabelle
|
C: | int32_t Dcreate ( CONST int8_t *path );
|
Assembler: |
pea path ; Offset 2 move.w #57,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H39,L:path%)
|
Name: | »delete directory« - Verzeichnis löschen.
| ||||||||||||
Gemdosnummer: | 58
| ||||||||||||
Deklaration: | int32_t Ddelete ( CONST int8_t *path );
| ||||||||||||
Beschreibung: | Die GEMDOS-Routine Ddelete löscht ein Verzeichnis mit dem
Pfadnamen path, das keine weiteren Dateien oder
Unterverzeichnisse enthalten darf. Der String path muß mit
dem ASCII-Zeichen 0 abgeschlossen sein.
Hinweis: In GEMDOS-Versionen < 0.15 funktionierte ein Aufruf von Dcreate mit unmittelbar folgendem Ddelete nicht - erst ein weiteres Ddelete brachte das gewünschte Resultat. In MagiC testet der Kernel vorher, ob das Verzeichnis ein aktueller Pfad ist, und liefert ggfs. eine Fehlermeldung zurück. Nach Möglichkeit sollten nur leere Verzeichnisse gelöscht werden; dies ist jedoch Sache des XFS. Ab MagiC-Version 4.01 können mit Hilfe dieser Funktion auch symbolische Links gelöscht werden; in älteren Versionen wurde stets das Verzeichnis gelöscht, auf welches der Link zeigte. | ||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||
Querverweis: | Binding Dcreate XFS-Konzept in MagiC
|
C: | int32_t Ddelete ( CONST int8_t *path );
|
Assembler: |
pea path ; Offset 2 move.w #58,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H3A,L:path%)
|
Name: | »free disk space« - ermittelt die Kapazitätsauslastung eines
Laufwerks.
| ||||||||||||||
Gemdosnummer: | 54
| ||||||||||||||
Deklaration: | int16_t Dfree ( DISKINFO *buf, int16_t driveno );
| ||||||||||||||
Beschreibung: | Die GEMDOS-Routine Dfree ermittelt die Kapazität und Belegung
eines Laufwerks. Es gilt:
Hinweis: In GEMDOS-Versionen < 0.15 ist diese Funktion unglaublich langsam. Auf das Verzeichnis U:\PROC angewandt, liefert diese Funktion ab MagiC 3 die minimale, tatsächliche Blocklänge (als Sektoren pro Cluster). Zur Zeit wird der Speicher wortweise belegt, d.h. die 'Sektorgröße' ist 1 int8_t, und die Clustergröße beträgt 2 Sektoren (also 2 int8_ts). | ||||||||||||||
Ergebnis: | Die Funktion liefert bei korrekter Ausführung eine 0, und eine
negative Zahl, wenn es zu einem Fehler kam.
| ||||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||||
Querverweis: | Binding Fdelete
|
C: | int16_t Dfree ( DISKINFO *buf, int16_t driveno );
|
Assembler: |
move.w driveno,-(sp) ; Offset 6 pea buf ; Offset 2 move.w #54,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H36,L:buf%,W:driveno%)
|
Name: | »Dgetcwd« - bestimmt das aktuelle Verzeichnis eines
Prozesses.
|
Gemdosnummer: | 315
|
Deklaration: | int32_t Dgetcwd ( int8_t *path, int16_t drv, int16_t size );
|
Beschreibung: | Es wird das aktuelle Arbeitsverzeichnis des aktiven Prozesses
auf Laufwerk drv geliefert. Der Parameter size gibt
die Größe des den Namen aufnehmenden Puffers an.
|
Ergebnis: | path: Verzeichnis des aktuellen Prozesses.
Der Rückgabewert der Funktion ist entweder 0 (alles ok), ERANGE (die Größe des Puffers reicht nicht aus, um die exakte Beschreibung des Verzeichnisses aufzunehmen), oder EDRIVE (kein gültiges GEMDOS Laufwerk). |
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.96 existiert und in MagiC ab Version 3.0.
|
Gruppe: | Verzeichnisfunktionen
|
Querverweis: | Binding Dgetpath
|
C: | int32_t Dgetcwd ( int8_t *path, int16_t drv, int16_t size );
|
Assembler: |
move.w size,-(sp) ; Offset 8 move.w drv,-(sp) ; Offset 6 pea path ; Offset 2 move.w #315,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »disk get drive« - ermittelt das aktuelle Laufwerk.
| ||||||||||||
Gemdosnummer: | 25
| ||||||||||||
Deklaration: | int16_t Dgetdrv ( VOID );
| ||||||||||||
Beschreibung: | Die GEMDOS-Routine Dgetdrv ermittelt das aktuelle Laufwerk.
| ||||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine Zahl, die wie folgt
codiert ist:
Hinweis: Ab MagiC 3 sind Laufwerke von A bis Z, d.h. Werte von 0 bis 25 zulässig. | ||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||
Querverweis: | Binding Dsetdrv _drvbits
|
C: | int16_t Dgetdrv ( VOID );
|
Assembler: |
move.w #25,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #2,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H19)
|
Name: | »get path« - aktuelles Verzeichnis ermitteln.
| ||||||||||||
Gemdosnummer: | 71
| ||||||||||||
Deklaration: | int16_t Dgetpath ( int8_t *path, int16_t driveno );
| ||||||||||||
Beschreibung: | Die GEMDOS-Routine Dgetpath ermittelt das aktuelle Verzeichnis
auf dem Laufwerk driveno. Die Bezeichnungen der Laufwerke
werden im Parameter driveno wie folgt codiert:
Der Pfad wird im Puffer path als String abgelegt. Da die maximale Länge eines Pfades im GEMDOS nicht begrenzt, und nur bei Existenz der Funktion Dpathconf ermittelt werden kann, sollte der aufnehmende Puffer ausreichend Platz bieten (256 Bytes dürften wohl ausreichend sein). | ||||||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||
Querverweis: | Binding Dsetpath
|
C: | int16_t Dgetpath ( int8_t *path, int16_t driveno );
|
Assembler: |
move.w driveno,-(sp) ; Offset 6 pea path ; Offset 2 move.w #71,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H47,L;path%,W:driveno%)
|
Name: | »Dlock« - sperrt ein BIOS Gerät bzw. gibt es wieder frei.
| ||||||||||
Gemdosnummer: | 309
| ||||||||||
Deklaration: | int32_t Dlock ( int16_t mode, int16_t drv );
| ||||||||||
Beschreibung: | Die Funktion erlaubt es, das BIOS-Gerät drv zu
sperren, bzw. wieder freizugeben. Auf einem gelockten Laufwerk sind
keine GEMDOS File-Operationen zugelassen; Rwabs ist nur für den
sperrenden Prozess erlaubt.
Der Sinn und Zweck der Funktion besteht darin, daß Low-Level Programme (etwa zum Formatieren) (X)BIOS Funktionen ausführen können, während das Gerät für normale Dateizugriffe gesperrt bleibt.
Wird ein Prozeß beendet der noch eine Sperre auf einem Gerät hält, so wird diese Sperre aufgehoben. Bit 1 von mode zeigt an, welche Rückgabewerte gewünscht sind. Ist dieses Bit gesetzt, und das entsprechende Gerät bereits von einem anderen Prozeß gesperrt (oder hat ein anderer Prozeß Files auf diesem Gerät geöffnet), dann wird dessen Prozeß-ID zurückgeliefert. Dies erlaubt sinnvollere Fehlermeldungen an den Benutzer, da nun mitgeteilt werden kann, welcher Prozeß das Gerät benutzt, wenn das Sperren fehlschlagen sollte. Alle anderen Bits von mode sind reserviert und müssen auf 0 gesetzt werden. Ein Sperren eines Gerätes mit unmittelbar folgendem Freigeben desselben, ist einem Medienwechsel sehr ähnlich. Zu beachten ist lediglich, daß nicht gesperrt werden kann, wenn auf dem angegebenen Gerät noch Dateien geöffnet sind. Hinweis für MagiC: Vor Sperren des Laufwerks werden, falls ein Dateisystem für das Laufwerk existiert, die Caches über den Vektor xfs_sync zurückgeschrieben. Dann stellt der Kernel über xfs_drv_close eine Anfrage, ob das Laufwerk gesperrt werden kann. Wenn ja, gibt das XFS seine Strukturen frei und signalisiert dann dem Kernel, daß auch er seine Strukturen für das Laufwerk freigeben und die Sperrung durchführen kann. | ||||||||||
Ergebnis: | Die Funktion kann die folgenden Werte zurückliefern:
| ||||||||||
Verfügbar: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.93 existiert und in MagiC ab Version 3.0.
| ||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||
Querverweis: | Binding Fxattr XFS-Konzept in MagiC
|
C: | int32_t Dlock ( int16_t mode, int16_t drv );
|
Assembler: |
move.w drv,-(sp) ; Offset 4 move.w mode,-(sp) ; Offset 2 move.w #309,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »Dopendir« - öffnet ein Verzeichnis zum Lesen.
| ||||||||
Gemdosnummer: | 296
| ||||||||
Deklaration: | int32_t Dopendir ( int8_t *name, int16_t flag );
| ||||||||
Beschreibung: | Die Funktion öffnet das Verzeichnis name zum Lesen.
Der Parameter name muß NULL-terminiert sein und darf keinen
abschließenden Backslash enthalten. Der Parameter flag
beschreibt die Art und Weise, wie das Verzeichnis geöffnet werden
soll:
Neuere Programme sollten nach Möglichkeit immer den Normalmodus benutzen, um die volle Funktionalität zu nutzen. | ||||||||
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: | Verfügbar, wenn ein 'MiNT' Cookie mit einer Versionsnummer von
mindestens 0.90 existiert und in MagiC ab Version 3.0.
| ||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||
Querverweis: | Binding Dclosedir Dreaddir Drewinddir Pdomain
|
C: | int32_t Dopendir ( int8_t *name, int16_t flag );
|
Assembler: |
move.w flag,-(sp) ; Offset 6 pea name ; Offset 2 move.w #296,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Dpathconf« - Informationen über ein Filesystem ermitteln.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gemdosnummer: | 292
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Deklaration: | int32_t Dpathconf ( BYTE *name, int16_t mode );
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beschreibung: | Die Funktion ermöglicht es Informationen über das Filesystem,
welches die Datei name enthält, zu ermitteln.
Der Parameter mode gibt an, welche Möglichkeiten bzw. Einschränkungen des Filesystems erfragt werden sollen. Mögliche Werte sind hier:
Ein Rückgabewert von 0x7fffffff (2^31 -1) bedeutet, daß es für die erfragte Komponente keine Beschränkung gibt. Hinweis: In MagiC kann die Funktion auch auf Dateien angewendet werden. Der Dateiname wird jedoch in diesem Fall ignoriert, d.h. nur der Pfad wird ausgewertet. Die Funktion sollte in MagiC ggf. nach Dopendir aufgerufen werden, da Dpathconf keine Diskwechsel erkennt (Grund: wenn der Pfad noch im Cache ist, wird kein Diskzugriff durchgeführt, und daher kein Diskwechsel erkannt). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ergebnis: | Die Funktion liefert die Eigenschaften/Einschränkungen des
Filesystems bzgl. des Parameters mode zurück (s.o.).
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verfügbar: | Seit der ersten in MultiTOS integrierten MiNT Version 1.04 und
in MagiC ab Version 3.0.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Querverweis: | Binding Sysconf XFS-Konzept in MagiC Test auf Pipes
|
C: | int32_t Dpathconf ( BYTE *name, int16_t mode );
|
Assembler: |
move.w mode,-(sp) ; Offset 6 pea name ; Offset 2 move.w #292,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Dreaddir« - Verzeichnis Informationen lesen.
| ||||||
Gemdosnummer: | 297
| ||||||
Deklaration: | int32_t Dreaddir ( int16_t len, int32_t dirhandle, int8_t *buf
);
| ||||||
Beschreibung: | Die Funktion liefert die nächste Datei im Verzeichnis
dirhandle zurück. Der Dateiname und ein optionaler 4Byte
Index für die Datei, werden in buf geschrieben.
Der Dateiindex wird weggelassen, wenn das Verzeichnis im Kompatibilitätsmodus geöffnet wurde, anderenfalls erscheint er als erstes in buf, gefolgt von einem (nullterminierten) Dateinamen. (Ggfs. unterschiedliche) Namen mit gleichem Index, gehören zur selben Datei. (Ggfs gleiche) Namen mit unterschiedlichem Index gehören zu verschiedenen Dateien. Hinweis für MagiC: Für FAT-Dateisysteme liefert die Funktion die folgenden Index-Daten:
Dieses Verfahren ist ähnlich wie das, welches Linux und Solaris verwenden. Nachteil ist, daß Dateien beim Verschieben ihren Index ändern. In len muß die Größe des aufnehmenden Puffers angegeben werden. | ||||||
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: | Verzeichnisfunktionen
| ||||||
Querverweis: | Binding Dclosedir Dopendir Drewinddir Dxreaddir
|
C: | int32_t Dreaddir ( int16_t len, int32_t dirhandle, int8_t *buf
);
|
Assembler: |
pea buf ; Offset 8 move.l dirhandle ; Offset 4 move.w len ; Offset 2 move.w #297,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »Dreadlabel« - Filesystem Label lesen.
| ||||
Gemdosnummer: | 338 (0x0152)
| ||||
Deklaration: | int32_t Dreadlabel ( CONST int8_t *path, int8_t *label, int16_t
length );
| ||||
Beschreibung: | Die Funktion liefert in label den Namen des auf
path liegenden Filesystems zurück. Der Parameter
length gibt die Größe des aufnehmendes Puffers label
an.
| ||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||
Verfügbar: | MagiC ab Version 3.0, ab MiNT 1.12
| ||||
Gruppe: | Verzeichnisfunktionen
| ||||
Querverweis: | Binding Dwritelabel XFS-Konzept in MagiC
|
C: | int32_t Dreadlabel ( CONST int8_t *path, int8_t *label, int16_t
length );
|
Assembler: |
move.w length,-(sp) ; Offset 10 pea label ; Offset 6 pea path ; Offset 2 move.w #338,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $C(sp),sp ; Stack korrigieren |
Name: | »Drewinddir« - geöffnetes Verzeichnis zurücksetzen.
| ||||||
Gemdosnummer: | 298
| ||||||
Deklaration: | int32_t Drewinddir ( int32_t handle );
| ||||||
Beschreibung: | Die Funktion setzt das Verzeichnis handle auf den
Anfang zurück, so daß der nächste Aufruf von Dreaddir wieder den
ersten Eintrag im Verzeichnis liest.
| ||||||
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: | Verzeichnisfunktionen
| ||||||
Querverweis: | Binding Dopendir Dreaddir
|
C: | int32_t Drewinddir ( int32_t handle );
|
Assembler: |
move.l handle,-(sp) ; Offset 2 move.w #298,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
Name: | »disk set drive« - legt das aktuelle Laufwerk fest und
liefert eine Bitmap sämtlicher gemounteter Laufwerke.
| ||||||||||
Gemdosnummer: | 14
| ||||||||||
Deklaration: | int32_t Dsetdrv ( int16_t drv );
| ||||||||||
Beschreibung: | Die GEMDOS-Routine Dsetdrv macht das Laufwerk drv zum
aktuellen Laufwerk. Es gilt:
Hinweis: Eine falsche Laufwerksnummer kann zu schweren Schäden in GEMDOS-internen Strukturen führen. Die vom GEMDOS unterstützten Laufwerke erfragt man am besten wie folgt: Dsetdrv (Dgetdrv ()); Ab MagiC 3 sind Laufwerke von A bis Z, d.h. Werte von 0 bis 25 zulässig. Es wird nicht überprüft, ob das angegebene Laufwerk überhaupt existiert. GEMDOS 0.30 (TOS 4.00-4.04) gibt für Laufwerke über P fälschlich EDRIVE zurück! | ||||||||||
Ergebnis: | Die Funktion liefert als Ergebnis eine Bit-Tabelle mit allen
angeschlossenen Laufwerken. Jedes angeschlossene Laufwerk wird mit
einem gesetzten Bit angezeigt.
| ||||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||||
Querverweis: | Binding Dgetdrv _drvbits
|
C: | int32_t Dsetdrv ( int16_t drv );
|
Assembler: |
move.w drv,-(sp) ; Offset 2 move.w #14,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #4,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H0E,W:drv%)
|
Name: | »Set key« - Set the key/passphrase for a drive.
| ||||||||
Gemdosnummer: | 333 (0x014d)
| ||||||||
Deklaration: | int32_t Dsetkey ( int32_t hidev, int32_t lowdev, int8_t *key,
int16_t cipher );
| ||||||||
Beschreibung: | The GEMDOS routine Dsetkey set the key/passphrase for the drive
specified by hidev and lowdev. Drive will be
deferenced if it is an alias.
The parameter key is a pointer to the new passhrase; if this is an empty string, ciphering will be disabled for the drive; if it is a NULL pointer, the function checks the current ciphering mode. The parameter cipher specifies the cipher type to use. Currently, only zero (Blowfish) is supported. Other values are reserved for future expansion. As changing the key directly influences data access, the drive is Dlock()ed during this process to prevent data loss. | ||||||||
Ergebnis: | If key is NULL, the function returns 0 if ciphering is
disabled on dev, or any other value if ciphering is enabled.
If key is not NULL, the following return values are possible:
| ||||||||
Verfügbar: | Sie steht ab FreeMiNT 1.15.4 zur Verfügung.
| ||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||
Querverweis: | Binding
|
C: | int32_t Dsetkey ( int32_t hidev, int32_t lowdev, int8_t *key,
int16_t cipher );
|
Assembler: |
move.w cipher,-(sp) ; Offset 14 pea key ; Offset 10 move.l lowdev,-(sp) ; Offset 6 move.l hidev,-(sp) ; Offset 2 move.w #333,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea 16(sp),sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H14D,L:hidev%,L:lowdev%,L:key%,W:cipher%)
|
Name: | »set path« - legt das aktuelle Verzeichnis fest.
| ||||||||
Gemdosnummer: | 59
| ||||||||
Deklaration: | int16_t Dsetpath ( CONST int8_t *path );
| ||||||||
Beschreibung: | Die GEMDOS-Routine Dsetpath setzt einen neuen Zugriffspfad für
das aktuelle Laufwerk. Der Parameter path enthält den neuen
aktuellen Zugriffspfad für das Laufwerk.
Hinweis: Für jedes Laufwerk merkt sich GEMDOS das aktuelle Verzeichnis. Die Funktion Dsetpath sollte aber nur für das aktuelle Laufwerk benutzt werden. Für andere Laufwerke sollte hingegen die folgende Methode angewendet werden:
Auf einigen (älteren) Versionen von GEMDOS kann ein zu häufiges Setzen von nicht existierenden Pfaden zu Störungen in internen Strukturen führen. | ||||||||
Ergebnis: | Die Funktion liefert folgende Resultate:
| ||||||||
Verfügbar: | Alle GEMDOS Versionen.
| ||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||
Querverweis: | Binding Dgetpath
|
C: | int16_t Dsetpath ( CONST int8_t *path );
|
Assembler: |
pea path ; Offset 2 move.w #59,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #6,sp ; Stack korrigieren |
GFA-Basic | Fehler%=Gemdos(&H3B,L:path%)
|
Name: | »Dwritelabel« - Filesystem Label setzen.
|
Gemdosnummer: | 339 (0x0153)
|
Deklaration: | int32_t Dwritelabel ( CONST int8_t *path, CONST int8_t *label
);
|
Beschreibung: | Die Funktion schreibt den in label angegebenen Namen
auf das in path angegebene Filesystem.
Prior to MiNT version 1.14.5 this call contained a bug that allowed the label to be changed by all users. |
Ergebnis: | E_OK wenn erfolgreich oder einen negativen GEMDOS Fehlercode.
|
Verfügbar: | MagiC ab Version 3.0, MiNT 1.12
|
Gruppe: | Verzeichnisfunktionen
|
Querverweis: | Binding Dreadlabel XFS-Konzept in MagiC
|
C: | int32_t Dwritelabel ( CONST int8_t *path, CONST int8_t *label
);
|
Assembler: |
pea label ; Offset 6 pea path ; Offset 2 move.w #339,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $A(sp),sp ; Stack korrigieren |
Name: | »Dxopendir« - öffnet ein Verzeichnis zum Lesen.
| ||||||||
Gemdosnummer: | 1296
| ||||||||
Deklaration: | int32_t Dxopendir ( int8_t *name, int16_t flag );
| ||||||||
Beschreibung: | Dxopendir ruft das normale Dopendir auf, speichert allerdings
dann das zurückgegebene Handle und Flag in einer verketten Liste so
wissen Dreaddir und Dxreaddir das sie bei diesem Verzeichnis wandeln
müssen. Dcloseddir löscht das Handle wieder aus der Liste.
Dreaddir und Dxreaddir wandeln den zurück gegebenen Namen in Kleinbuchstaben. Die Funktion öffnet das Verzeichnis name zum Lesen. Der Parameter flag beschreibt die Art und Weise, wie das Verzeichnis geöffnet werden soll:
Neuere Programme sollten nach Möglichkeit immer den Normalmodus benutzen, um die volle Funktionalität zu nutzen. | ||||||||
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: | Wenn die Systemerweiterung Dir_Lwr (liegt Égale 4.2 bei)
installiert ist. Legt den Cookie 'DYDL' an.
| ||||||||
Gruppe: | Verzeichnisfunktionen
| ||||||||
Querverweis: | Binding Dclosedir Dreaddir Drewinddir Pdomain
|
C: | int32_t Dxopendir ( int8_t *name, int16_t flag );
|
Assembler: |
move.w flag,-(sp) ; Offset 6 pea name ; Offset 2 move.w #1296,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen addq.l #8,sp ; Stack korrigieren |
Name: | »Dxreaddir« - Verzeichnis Informationen lesen.
| ||||||
Gemdosnummer: | 322, (0x142)
| ||||||
Deklaration: | int32_t Dxreaddir ( int16_t ln, int32_t dirh, int8_t *buf,
XATTR *xattr, int32_t *xr );
| ||||||
Beschreibung: | Die Funktion liefert die nächste Datei aus dem Verzeichnis mit
dem Handle dirh. Der Dateiname und der optionale 4 Bytes
große Dateiindex werden in dem durch buf spezifizierten
Puffer abgelegt.
Der Dateiindex wird weggelassen, wenn bei Dopendir der Kompatibilitätmodus angegeben wurde. Wenn zwei Dateinamen den gleichen Index besitzen, stehen sie für die selbe Datei. MagiC liefert für FAT-Dateisysteme die folgenden Index-Daten:
Dieses Verfahren ist ähnlich wie das, welches Linux und Solaris verwenden. Nachteil ist, daß Dateien beim Verschieben ihren Index ändern. Der Parameter ln gibt die Länge des aufnehmendes Puffers buf an. Die erweiterten Dateiattribute werden analog zu Fxattr in der Struktur xattr abgelegt, wobei symbolische Links nicht aufgelöst werden. Hinweis: Dieser Teil des Aufrufs kann fehlschlagen, obwohl der Dateiname lesbar war. In diesem Fall wird ein getrennter Returncode in dem long-Wert abgelegt, auf das der Parameter xr zeigt. | ||||||
Ergebnis: | Die Funktion kann folgende Rückgabewerte liefern:
| ||||||
Verfügbar: | MagiC ab Version 3.0, ab MiNT 1.11
| ||||||
Gruppe: | Verzeichnisfunktionen
| ||||||
Querverweis: | Binding Dreaddir Dopendir Dclosedir Drewinddir
|
C: | int32_t Dxreaddir ( int16_t ln, int32_t dirh, int8_t *buf,
XATTR *xattr, int32_t *xr );
|
Assembler: |
pea xr ; Offset 16 pea xattr ; Offset 12 pea buf ; Offset 8 move.l dirh ; Offset 4 move.w ln ; Offset 2 move.w #322,-(sp) ; Offset 0 trap #1 ; GEMDOS aufrufen lea $14(sp),sp ; Stack korrigieren |