====== std.fs ====== Datei-I/O direkt über POSIX-Systemaufrufe (sys_open, read, write, unlink, rename, lseek). Bietet Lesen (''ReadFile''), Schreiben (''WriteFile''), Anhängen (''AppendFile''), Löschen (''DeleteFile'') und Dateigröße (''FileSize''). Stdout/Stderr-Ausgabe (''StdoutWrite'', ''StderrWrite''), Zeichenausgabe (''PutChar'') und Pfad-Operationen: Normalisieren, Verzeichnis, Dateiname, Erweiterung und relative Pfadauflösung. Einsatzbereiche: Konfigurationsdateien, Log-Dateien, Binärdaten-Speicherung, Systemdienste. Für komfortablere formatierte Ausgabe bietet ''std.io'' Print-Hilfsfunktionen. **Autor:** Andreas Röne\\ **Copyright:** 2024-2025 Andreas Röne ---- ===== Typen ===== ==== fd = int64 ==== ---- ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Sichtbarkeit ^ | ''O_RDONLY'' | ''int64'' | ''0'' | pub | | ''O_WRONLY'' | ''int64'' | ''1'' | pub | | ''O_RDWR'' | ''int64'' | ''2'' | pub | | ''O_CREAT'' | ''int64'' | ''64'' | pub | | ''O_TRUNC'' | ''int64'' | ''512'' | pub | | ''O_APPEND'' | ''int64'' | ''1024'' | pub | | ''O_EXCL'' | ''int64'' | ''128'' | pub | | ''S_IRUSR'' | ''int64'' | ''256'' | pub | | ''S_IWUSR'' | ''int64'' | ''128'' | pub | | ''S_IRGRP'' | ''int64'' | ''32'' | pub | | ''S_IWGRP'' | ''int64'' | ''16'' | pub | | ''S_IROTH'' | ''int64'' | ''4'' | pub | | ''S_IWOTH'' | ''int64'' | ''2'' | pub | | ''DEFAULT_MODE'' | ''int64'' | ''420'' | pub | | ''STDIN_FILENO'' | ''int64'' | ''0'' | pub | | ''STDOUT_FILENO'' | ''int64'' | ''1'' | pub | | ''STDERR_FILENO'' | ''int64'' | ''2'' | pub | | ''SYS_OPEN'' | ''int64'' | ''2'' | priv | | ''SYS_UNLINK'' | ''int64'' | ''87'' | priv | | ''SYS_RENAME'' | ''int64'' | ''82'' | priv | | ''SYS_LSEEK'' | ''int64'' | ''8'' | priv | | ''SYS_EXIT'' | ''int64'' | ''60'' | priv | | ''SEEK_SET'' | ''int64'' | ''0'' | pub | | ''SEEK_CUR'' | ''int64'' | ''1'' | pub | | ''SEEK_END'' | ''int64'' | ''2'' | pub | ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''IsValidFd(f: fd): bool'' | pub | Prüft ob Dateideskriptor gültig ist | | ''ReadFile(path: pchar, buf: pchar, max_len: int64): int64'' | pub | Liest Dateiinhalt in Puffer ein | | ''WriteFile(path: pchar, buf: pchar, len: int64): int64'' | pub | Schreibt Puffer vollständig in Datei | | ''AppendFile(path: pchar, buf: pchar, len: int64): int64'' | pub | Hängt Puffer an bestehende Datei an | | ''DeleteFile(path: pchar): bool'' | pub | Löscht Datei über sys_unlink | | ''FileSize(path: pchar): int64'' | pub | Gibt Dateigröße in Bytes zurück | | ''StdoutWrite(buf: pchar, len: int64): int64'' | pub | Schreibt Puffer auf Standardausgabe | | ''StderrWrite(buf: pchar, len: int64): int64'' | pub | Schreibt Puffer auf Fehlerausgabe | | ''PutChar(c: int64): int64'' | pub | Gibt einzelnes Zeichen auf stdout aus | | ''PATH_BUF_SIZE'' | ''int64'' | ''4096'' | priv | | ''PathNormalize(dest: pchar, src: pchar): pchar'' | pub | Normalisiert Pfad (entfernt ./ und ../) | | ''PathDir(dest: pchar, path: pchar): pchar'' | pub | Extrahiert Verzeichnisteil aus Pfad | | ''PathExt(dest: pchar, path: pchar): pchar'' | pub | Extrahiert Dateiendung aus Pfad | | ''PathBase(dest: pchar, path: pchar): pchar'' | pub | Extrahiert Dateiname ohne Verzeichnis | | ''PathResolve(dest: pchar, base: pchar, relative: pchar): pchar'' | pub | Löst relativen Pfad gegen Basispfad auf |