Tutoren sind auch nur Menschen! Sie wissen leider nicht alles! Helfen Sie den Tutoren, bessere Menschen zu werden!
Aufgabe 1 (3 Punkte)
Erklären Sie Ihrem Tutor, Ihrer Tutorin :-), was das folgende C-Programm kill_me_now.c genau macht (man setpgid !!!):
int main(void
{ setpgid(0, getppid());
kill(0, 9);
}
Gibt es einen Unterschied, wenn man es mit nohup kill_me_now startet?
Aufgabe 2 (3 Punkte)
Erklären Sie Ihrem Tutor :-), Ihrer Tutorin, was das folgende C-Programm kill_me_not.c genau macht:
#include <stdio.h>
int main(void)
{ FILE *fp;
kill(getppid(), 9);
if (fp=fopen("test", "w"))
fputs("still alive!\n", fp),
fclose(fp);
}
Gibt es einen Unterschied, wenn man es mit nohup kill_me_not startet? Begründung!
Aufgabe 3 (4 Punkte)
Es ist manchmal "als Programm" ganz nützlich zu wissen, ob die Standardeingabe vom Terminal aus erfolgt, oder, ob die Eingabe beim Start des Programms von der Shell an eine Datei vergeben wurde. Schreiben Sie ein kleines C-Progrämmchen is_redirected.c, das lediglich erkennt und ausgibt, ob die Standardeingabe das Terminal oder eine Datei ist.
thales$ is_redirected
Lese vom Terminal
thales$ is_redirected <is_redirected.c
Lese von Datei
Hinweiskette:
Soft 1, Skript Seite 200; stdin (Filedeskriptor 0) ist ein Charakter-Device; Soft 1, Übungsblatt Nr. 10, man fstat()