Lösungen 1te Miniklausur Aufgabe 1, 2 und 3

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:

:cool: