Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File5.15.12 Dpathconf TOS 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: mode Bedeutung -1: max. erlaubter Wert für Dpathconf selbst. DP_IOPEN (0): max. Anzahl der geöffneten Dateien. DP_MAXLINKS (1): max. Anzahl der Verweise (Links) auf eine Datei. DP_PATHMAX (2): max. Länge des vollen Pfadnamens. DP_NAMEMAX (3): max. Länge eines Dateinamens. DP_ATOMIC (4): Anzahl der Bytes, die auf einmal geschrieben werden können. DP_TRUNC (5): Informationen über das Kürzen von Dateinamen: 0 = Dateinamen werden nicht gekürzt. Wenn bei einem Systemaufruf die Länge des maximalen Dateinamens überschritten wird, wird der Wert ERANGE zurückgeliefert. 1 = Dateinamen werden automatisch auf die maximal mögliche Länge verkürzt. 2 = Dateinamen werden nach DOS-Konvention gekürzt. (also: 8 Zeichen Name, 3 Zeichen Extension). DP_CASE (6): Informationen über Groß-/Kleinschreibung: 0 = Unterscheidung zwischen Groß-/ Kleinschreibung. 1 = keine Unterscheidung zwischen Groß-/ Kleinschreibung (alle Zeichen werden entweder in Groß-, oder in Kleinbuchstaben umgewandelt). 2 = keine Unterscheidung zwischen Groß-/ Kleinschreibung. Das Dateisystem speichert aber Pfad- und Dateinamen mit den Originalwerten ab. Beispiel: Die angezeigte Datei 'HelloWorld' kann auch über 'HELLOWorld' oder 'HeLLoWORLD' angesprochen werden. DP_MODEATTR (7): Informationen über Modus-Bits einer Datei: Dieser Modus liefert Informationen über die Gültigkeit der in den Feldern mode und attr der XATTR Struktur definierten Werte. Die Bits 0..5 beschreiben welche Flags der Komponente attr gültig sind. Dabei gilt: FA_RDONLY (0x01): wird nur gesetzt wenn die Leseberechtigung über dieses Bit gesteuert wird, und nicht, wenn es über die Bedeutung der mode-Bits emuliert wird. FA_HIDDEN (0x02): FA_SYSTEM (0x04): wird gesetzt, wenn das Filesystem diese speziellen Attribute unterstützt (normalerweise nur bei DOS Filesystemen der Fall). FA_LABEL (0x08): wird gesetzt, wenn das Filesystem-Label per Fsfirst/Fsnext ermittelt werden kann. FA_DIR (0x10): reserviert. Um zu entscheiden, ob es sich um einen Ordner auf dem Filesystem handelt, sollte auf die Datei-Typ-Bits (s.u.) zurückgegriffen werden. FA_CHANGED (0x20): wird gesetzt, wenn das Filesystem den Begriff des Archiv-Bits kennt, und das attr-Feld für diesen Zweck benutzt wird. Die Bits 6 und 7 sind reserviert. In den Bits 8..19 werden Informationen darüber abgelegt, ob die unteren 12-Bits der mode-Komponente gültig sind. Die Bits 20..27 beschreiben, welche Dateitypen von dem Filesystem unterstützt werden. Dabei gilt: DP_FT_DIR (0x00100000L): Ordner DP_FT_CHR (0x00200000L): spezielle Character- Files DP_FT_BLK (0x00400000L): spezielle Block-Files (z.Zt. unbenutzt) DP_FT_REG (0x00800000L): Reguläre Dateien DP_FT_LNK (0x01000000L): Symbolische Links DP_FT_SOCK (0x02000000L): Sockets (z.Zt. unbenutzt) DP_FT_FIFO (0x04000000L): Pipes DP_FT_MEM (0x08000000L): Shared Memory oder Prozess Dateien Die Bits 28..31 sind reserviert. DP_XATTRFIELDS (8): Informationen über erweiterte Attribute: In diesem Modus wird eine Bit-Maske der unterstützten (in der XATTR-Struktur angegebenen) Felder zurückgeliefert. Es gilt: DP_INDEX (0x0001): Index-Feld für jede Datei auf dem Filesystem eindeutig DP_DEV (0x0002): Gerätenummer DP_RDEV (0x0004): rdev-Feld gültig, und nicht zum dev-Feld identisch DP_NLINK (0x0008): Anzahl der Links DP_UID (0x0010): Benutzernummer DP_GID (0x0020): Gruppennummer DP_BLKSIZE (0x0040): Blockgröße DP_SIZE (0x0080): Dateilänge DP_NBLOCKS (0x0100): Anzahl der Blöcke DP_ATIME (0x0200): Zeit des letzten Zugriffs DP_CTIME (0x0400): Zeit der Dateierstellung DP_MTIME (0x0800): Zeit der letzten Änderung Alle anderen Bits sind für zukünftige Zwecke reserviert. DP_VOLNAMEMAX (9): maximum length of a volume name (0 if volume names not supported) 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