Appearance
10. File Functions
3
Zugriff aus Applikationen (via glibc)
- Greiffen immer via Library Call auf das Syscall-Interface zu.
- ... verbessert Portierbarkeit
- Aufruf eines Systemcalls dauert wesentlich länger als ein Functioncall.
- Führt zu einem
Context-Switch(Wechsel aus dem User- in den Kernelspace)
05.03.2024
10. File Functions
4
Unbuffered File-IO
- Auf Character Device findet im Kernel kein Buffering statt
- Kein Page Cache / Kein Block IO
- Bei Blockdevices sind Zugriffe via Page Cache / und BlockIO gebuffert
05.03.2024
10. File Functions
5
Unbuffered File System Calls
- Wrapper Funktionen sind in der libc implementiert
open,read,write,lseek,ioctl,mmap,close- Info via
man 2 <systemcall> - Weitere Calls für
- Sockets
- Prozesskontrolle
- Speicherverwaltung
- IPC
05.03.2024
10. File Functions
6
Buffered Calls
- Wrapperfunction in
<stdio.h>in C / C++ verfügbar libcbuffert System Calls- ... um weniger Context-Switches zu erreichen.
- wünschenswert bei Zugriff auf Blockspeicher / viele kurze Transfers
- unerwünscht bei Characterdevices mit Ziel kurze Latenzzeiten zu gewährleisten
fopen,fread,fwrite,fprintf,fclose,fputs,fflush
05.03.2024
10. File Functions
7
fflush
- Erzwingt das leeren eines Buffers und blockiert
- auch möglich mit
fclose
05.03.2024