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

Dateideskriptor-Konventionen:


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
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
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
FileExists(path: pchar): bool pub Prüft ob Datei oder Verzeichnis existiert
Rename(oldPath: pchar, newPath: pchar): bool pub Benennt Datei/Verzeichnis um
FileCopy(src: pchar, dest: pchar): bool pub Kopiert Datei
FileMove(src: pchar, dest: pchar): bool pub Verschiebt Datei (Copy + Delete)
FileStat(path: pchar, statBuf: int64): bool pub Füllt stat-Struktur (128 Bytes)
FileSizeFast(path: pchar): int64 pub Dateigröße via stat (kein open)
FileModTime(path: pchar): int64 pub Letzte Änderungszeit als Unix-Timestamp
FileAccessTime(path: pchar): int64 pub Letzter Zugriffszeitpunkt als Unix-Timestamp
FilePerm(path: pchar): int64 pub Dateiberechtigungen (untere 12 Bits der st_mode)
TmpFile(): pchar pub Erzeugt eindeutige Temp-Datei unter /tmp; gibt heap-alloc'd Pfad (32 Bytes) zurück — Aufrufer muss free(ptr, 32) aufrufen
DirList(path: pchar): int64 pub Liest Verzeichnisinhalt; gibt Handle zurück (0 = Fehler)
DirEntryCount(dirlist: int64): int64 pub Anzahl Einträge im dirlist-Handle
DirEntryType(dirlist: int64, name: pchar, nameLen: int64): int64 pub DT_*-Typ nach Name (lineare Suche)
DirEntryName(dirlist: int64, idx: int64): pchar pub Name des idx-ten Eintrags (0-basiert); gibt Zeiger in den Handle-Puffer zurück — nicht freigeben
DirEntryTypeAt(dirlist: int64, idx: int64): int64 pub DT_*-Typ des idx-ten Eintrags; DT_UNKNOWN wenn außerhalb
DirFree(dirlist: int64): void pub Gibt dirlist-Handle frei
DirWalk(root: pchar): int64 pub Rekursive Verzeichnis-Traversierung; gibt Walk-Handle zurück
DirWalkCount(result: int64): int64 pub Anzahl gefundener Pfade im Walk-Handle
DirWalkPath(result: int64, index: int64, outBuf: pchar): int64 pub Kopiert idx-ten Pfad in outBuf; gibt Länge zurück
DirWalkType(result: int64, index: int64): int64 pub DT_*-Typ des idx-ten Walk-Eintrags
DirWalkFree(result: int64): void pub Gibt Walk-Handle frei
GlobMatch(pattern: pchar, name: pchar): bool pub Prüft ob Name auf Wildcard-Pattern passt (*, ?)
FileGlob(pattern: pchar): int64 pub Sucht Dateien nach Muster; gibt Glob-Handle zurück
GlobCount(result: int64): int64 pub Anzahl Treffer im Glob-Handle
GlobGet(result: int64, index: int64, outBuf: pchar): int64 pub Kopiert idx-ten Treffer-Pfad in outBuf
GlobFree(result: int64): void pub Gibt Glob-Handle frei