Hier ist die Live-Bearbeitung der Klausuraufgabe (SS21) vom 26Jan22 zu finden.
Keine Garantie of Richtigkeit, weder der Bearbeitung noch der Korrektur!Wir haben spam-empty.c
als Basis genommen, um spam.c
zu schreiben. In spam-clean.c
wurde spam.c
etwas aufgeräumt.
Die Fehler aus der Übung waren:
- In der Aufgabenstellung steht “Der Pfadname jeder regulären Datei, die dem ausführenden benutzer gehört, wird einem eigenen Faden (
worker
) zur Bearbeitung übergeben.”. Es wurde dergetuid() == st.st_uid
check vergessen (Z124ff, -0.5). - Schlägt
pthread_create
fehl, wird der Speicher fürpath
wurde hier nicht freigegeben (Z141ff, -0.5). - Schlägt
fdopen
fehl, wird dertmpl
nicht geschlossen (Z191ff, -0.5) - Fehlerbehandlung für
fputs
undfputc
fehlt in (Z212, Z215, 2x-0.5). Dieses wurde in der Übung erwähnt, wurde aber aus Zeitgründen nicht implementiert. Einreturn -1
wäre ausreichend gewesen. - Am Ende von
send_template
fehlt noch einferror
check, in welchem Fall auchreturn -1
zurückgegeben werden sollte (Z224, -0.5).
Alle Zeilennummern beziehen sich auf spam-clean.c
. Insgesamt wären für diese Abgabe 3 von 60 Punkten Abgezogen worden. Sehr gut!