matthiaslantsch / fhnw-syspr-work-03

FHNW Modul System-Programmierung (syspr) Hands-on Lektion 3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

System-Programmierung

Hands-on zu Lektion 3

Für Slides und Code Beispiele, siehe Lektion 3

Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link.

a) TLPI Beispiele builden, 5'

b) File I/O, 20'

  • Schreiben Sie ein Programm my_copy.c, das eine beliebig grosse, existierende Datei source liest und in eine neue Datei dest kopiert, wie das cp Kommando:
    $ ./my_copy source dest
  • Verwenden Sie System Calls: open(), read(), write().
  • Fertig? Bauen Sie Fehlerbehandlung ein.

c) Buffering, 10'

  • Kompilieren Sie das Programm write_bytes zuerst mit und dann ohne die Compiler Option -DUSE_O_SYNC.
  • Messen Sie die Laufzeit (real, sys) der Binaries, je mit num-bytes = 100000 und buf-size = 1, 16, 256, 4096:
    $ time write_bytes my_file num-bytes buf-size
  • Welchen Einfluss hat die Buffergrösse? Und O_SYNC?
  • Wann/wozu ist Synchronisieren überhaupt nötig?

About

FHNW Modul System-Programmierung (syspr) Hands-on Lektion 3


Languages

Language:C 89.5%Language:Makefile 10.5%