Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Lösungen 1te Miniklausur Aufgabe 1, 2 und 3
Hi,
könnten wir hier mal bitte kurz und knapp Lösungsvorschlage zur Aufgabe 1, 2 und 3 der 1. Miniklausur posten?
Ich fang mal an mit Aufgabe 1:
a)1
b)1
c)3
d)3
e)3
Bei b) ist auch 3.
Hat jemand mal eine knappe Lösung zur Aufgabe 3?
Fehler bei int *p = NULL;
*p = -1;
Aufgabe 2:
/* includes */
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
static int getsize(const char *filename);
/* Funktion main */
int main(int argCount, char *args[])
{
size_t i;
int size;
for (i = 1; i < argCount; i++) {
size = getsize(args[i]);
if (size == -1) {
perror(args[i]);
} else {
printf("%s: %d\n", args[i], size);
}
}
return EXIT_SUCCESS;
}
/* Funktion getsize */
static int getsize(const char *filename)
{
struct stat status;
if (lstat(filename, &status) == -1) return -1;
return (int) status.st_size;
}
Aufgabe 3:
a) Segmentation fault (Speicherzugriffsfehler)
b) Die Adresse 0 ist im logischen Adressraum immer ungültig bzw. nicht schreibbar.
c) Memory Management Unit (MMU)
d) Trap (synchrone Programmunterbrechung)
e) Der Prozess bekommt das Signal [m]SIGSEGV[/m] und wird damit normalerweise beendet.
haben wir nicht alle eine musterlösung zur ersten miniklausur bekommen?
Haben wir, aber nur in analoger Form.
Ja,aber leider ist wohl das Magnetband-lesegerät des Thredstellers kaputt…
…soll vorkommen…!
:finger: