Zugriffsoperationen auf Dateien
Beispiel: „Lesen aus Datei“
C Öffnen von Dateien
open (path, flags, mode)
- path: Pfadname der Datei
- flags: welche Folgeoperationen erlaubt:
- lesen, schreiben, am Ende anfügen…
- mode: Zugriffsrechte bei neu erzeugter Datei:
- RWX für User/Group/World…
⇒ liefert File Descriptor (fd):
Kurzbezeichnung für weiteren ZugriffLink to original
C Lesen von Dateien
Lesen von Dateien
read (fd, buf, len)
- Lesen von len Bytes „ab der aktuellen Position“ der Datei fd in den Puffer buf
- aktuelle Position wird um gelesene Bytes weitergeschoben (sequentielles Lesen)
⇒ liefert Anzahl der tatsächlich gelesenen Bytes
Link to original
C Schreiben der Datei
write (fd, buf, len)
- Schreiben von len Bytes „ab der aktuellen Position“ der Datei fd vom den Puffer buf
- aktuelle Position wird um gelesene Bytes weitergeschoben (sequentielles Schreiben)
⇒ liefert Anzahl der tatsächlich geschrieben Bytes
Link to original
C Positionieren in der Datei
lseek (fd, offset, whence)
- Aktuelle Position in der Datei fd wird um offset Bytes verschoben gemäß whence:
- = SEEK_SET vom Anfang
- = SEEK_CUR von aktueller Position
- = SEEK_END vom Ende
ggf. auch über das aktuelle Ende hinaus ⇒ „Löcher“
⇒ liefert neue Position
Link to original
C Schließen der Datei
close (fd)
Link to original
C Zustandsinformationen über Datei erfragen
stat (path, buf)
Link to original
- Infos aus Inode der Datei path
- Inode-Nummer, mode, uid, gid, size, nlink,…
- Ergebnis wird in buf abgelegt
- wird z.B. für ls -l verwendet
C Erstellen - Löschen von Verzeichnisse
Link to original
- mkdir (path, mode)
- rmdir (path)
Erzeugen - Löschen von Hard Links
Link to original
- link (path1, path2)
- unlink (path)
C Duplizieren von Dateideskriptoren
newfd = dup (fd)
- Wird z.B. zur Realisierung der Ein-/Ausgabeumlenkung verwendet
Umsetzung von bla 2> err
Link to original fd = open (“err”, ...); close (2); fd2 = dup (fd); close (fd);

