From 7ff95bef6c104d40609ea79ef134882a53ece4de Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Thu, 2 Dec 2021 19:07:26 +0100 Subject: [PATCH] Beispiele 2.12.2021 --- 20211202/es-20211202.pdf | Bin 11560241 -> 11560253 bytes 20211202/es-20211202.tex | 4 ++-- 20211202/make-zombies-1.c | 41 +++++++++++++++++++++++++++++++++++++ 20211202/make-zombies-2.c | 41 +++++++++++++++++++++++++++++++++++++ 20211202/make-zombies-3.c | 41 +++++++++++++++++++++++++++++++++++++ 20211202/preprocessor-1.c | 9 ++++++++ 20211202/preprocessor-10.c | 15 ++++++++++++++ 20211202/preprocessor-11.c | 15 ++++++++++++++ 20211202/preprocessor-12.c | 28 +++++++++++++++++++++++++ 20211202/preprocessor-13.c | 14 +++++++++++++ 20211202/preprocessor-13.s | 26 +++++++++++++++++++++++ 20211202/preprocessor-14.c | 14 +++++++++++++ 20211202/preprocessor-14.s | 36 ++++++++++++++++++++++++++++++++ 20211202/preprocessor-2.c | 9 ++++++++ 20211202/preprocessor-3.c | 9 ++++++++ 20211202/preprocessor-4.c | 10 +++++++++ 20211202/preprocessor-5.c | 10 +++++++++ 20211202/preprocessor-6.c | 15 ++++++++++++++ 20211202/preprocessor-7.c | 15 ++++++++++++++ 20211202/preprocessor-8.c | 15 ++++++++++++++ 20211202/preprocessor-9.c | 15 ++++++++++++++ 21 files changed, 380 insertions(+), 2 deletions(-) create mode 100644 20211202/make-zombies-1.c create mode 100644 20211202/make-zombies-2.c create mode 100644 20211202/make-zombies-3.c create mode 100644 20211202/preprocessor-1.c create mode 100644 20211202/preprocessor-10.c create mode 100644 20211202/preprocessor-11.c create mode 100644 20211202/preprocessor-12.c create mode 100644 20211202/preprocessor-13.c create mode 100644 20211202/preprocessor-13.s create mode 100644 20211202/preprocessor-14.c create mode 100644 20211202/preprocessor-14.s create mode 100644 20211202/preprocessor-2.c create mode 100644 20211202/preprocessor-3.c create mode 100644 20211202/preprocessor-4.c create mode 100644 20211202/preprocessor-5.c create mode 100644 20211202/preprocessor-6.c create mode 100644 20211202/preprocessor-7.c create mode 100644 20211202/preprocessor-8.c create mode 100644 20211202/preprocessor-9.c diff --git a/20211202/es-20211202.pdf b/20211202/es-20211202.pdf index 8bb500633bf8f3585ca5e03cbc80c53d6046c3f4..ba420eb35191fb7479bcfb05f3ae86df96e6b935 100644 GIT binary patch delta 8835 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%0Ds)^i_-X*?&&7Jd!Rdp^Z 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 DNNeG0 delta 8873 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 diff --git a/20211202/es-20211202.tex b/20211202/es-20211202.tex index 0d9846e..d01a46f 100644 --- a/20211202/es-20211202.tex +++ b/20211202/es-20211202.tex @@ -712,7 +712,7 @@ \end{frame} -\setlength{\pdfpageheight}{48cm} +\setlength{\pdfpageheight}{49cm} \begin{frame}[fragile] @@ -878,7 +878,7 @@ \end{frame} -\setlength{\pdfpageheight}{40.5cm} +\setlength{\pdfpageheight}{45cm} \begin{frame}[fragile] diff --git a/20211202/make-zombies-1.c b/20211202/make-zombies-1.c new file mode 100644 index 0000000..f7b2604 --- /dev/null +++ b/20211202/make-zombies-1.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabh�ngig vom Vaterprozess mit der + // erneuten Ausf�hrung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde k�rzer als der + // vorige. + sleep(10-i); + printf ("%d BRAINS! ", i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// + // hier kommt nur der Vaterprozess vorbei + for (i = 0; i < 10; ++i){ + // Der Vaterprozess wartet nun, bis der Reihe nach jeder + // seiner 10 Kindprozesse beendet ist. Leider wird auf das + // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl + // die anderen Kinder l�ngst erfolgreich beendet wurden, + // blockiert das erste Kind eine Bereinigung der Prozesstabelle + waitpid(pids[i], NULL, 0); + } +// + +// while (1); + return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20211202/make-zombies-2.c b/20211202/make-zombies-2.c new file mode 100644 index 0000000..737940e --- /dev/null +++ b/20211202/make-zombies-2.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz für 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabhängig vom Vaterprozess mit der + // erneuten Ausführung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde kürzer als der + // vorige. + sleep(10-i); + printf ("%d BRAINS! ", i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der längsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder längst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// + + while (1); +// return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20211202/make-zombies-3.c b/20211202/make-zombies-3.c new file mode 100644 index 0000000..196e0a4 --- /dev/null +++ b/20211202/make-zombies-3.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz für 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabhängig vom Vaterprozess mit der + // erneuten Ausführung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde kürzer als der + // vorige. + sleep(10-i); + printf ("%d BRAINS! ", i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der längsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder längst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// + +// while (1); + return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20211202/preprocessor-1.c b/20211202/preprocessor-1.c new file mode 100644 index 0000000..91a99c5 --- /dev/null +++ b/20211202/preprocessor-1.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#define VIER 4 + +int main (void) +{ + printf ("Die Antwort lautet: %d\n", VIER); + return 0; +} diff --git a/20211202/preprocessor-10.c b/20211202/preprocessor-10.c new file mode 100644 index 0000000..e01204d --- /dev/null +++ b/20211202/preprocessor-10.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello(x) { printf ("Hello!\n"); printf ("World!\n"); } +#define hallo(x) { printf ("Hallo!\n"); printf ("Welt!\n"); } + +#define english 1 + +int main (void) +{ + if (english) + hello () + else + hallo () + return 0; +} diff --git a/20211202/preprocessor-11.c b/20211202/preprocessor-11.c new file mode 100644 index 0000000..0778e33 --- /dev/null +++ b/20211202/preprocessor-11.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello(x) do { printf ("Hello!\n"); printf ("World!\n"); } while (0) +#define hallo(x) do { printf ("Hallo!\n"); printf ("Welt!\n"); } while (0) + +#define english 1 + +int main (void) +{ + if (english) + hello (); + else + hallo (); + return 0; +} diff --git a/20211202/preprocessor-12.c b/20211202/preprocessor-12.c new file mode 100644 index 0000000..6f5432f --- /dev/null +++ b/20211202/preprocessor-12.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +#define hello(x) \ + do \ + { \ + printf ("Hello!\n"); \ + printf ("World!\n"); \ + } \ + while (0) + +#define hallo(x) \ + do \ + { \ + printf ("Hallo!\n"); \ + printf ("Welt!\n"); \ + } \ + while (0) + +#define english 1 + +int main (void) +{ + if (english) + hello (); + else + hallo (); + return 0; +} diff --git a/20211202/preprocessor-13.c b/20211202/preprocessor-13.c new file mode 100644 index 0000000..1c0a27b --- /dev/null +++ b/20211202/preprocessor-13.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +#define set_answer(a,v) \ + do \ + a = v; \ + while (0) + +int main (void) +{ + int answer = 0; + set_answer (answer, 42); + printf ("Die Antwort lautet: %d\n", answer); + return 0; +} diff --git a/20211202/preprocessor-13.s b/20211202/preprocessor-13.s new file mode 100644 index 0000000..2b29389 --- /dev/null +++ b/20211202/preprocessor-13.s @@ -0,0 +1,26 @@ + .file "preprocessor-13.c" + .text + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "Die Antwort lautet: %d\n" + .text + .globl main + .type main, @function +main: +.LFB11: + .cfi_startproc + subq $8, %rsp + .cfi_def_cfa_offset 16 + movl $42, %esi + leaq .LC0(%rip), %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + addq $8, %rsp + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE11: + .size main, .-main + .ident "GCC: (Debian 8.3.0-6) 8.3.0" + .section .note.GNU-stack,"",@progbits diff --git a/20211202/preprocessor-14.c b/20211202/preprocessor-14.c new file mode 100644 index 0000000..b1558f5 --- /dev/null +++ b/20211202/preprocessor-14.c @@ -0,0 +1,14 @@ +#include <stdio.h> + +void set_answer (int *a, int v) +{ + *a = v; +} + +int main (void) +{ + int answer = 0; + set_answer (&answer, 42); + printf ("Die Antwort lautet: %d\n", answer); + return 0; +} diff --git a/20211202/preprocessor-14.s b/20211202/preprocessor-14.s new file mode 100644 index 0000000..ee84b20 --- /dev/null +++ b/20211202/preprocessor-14.s @@ -0,0 +1,36 @@ + .file "preprocessor-14.c" + .text + .globl set_answer + .type set_answer, @function +set_answer: +.LFB11: + .cfi_startproc + movl %esi, (%rdi) + ret + .cfi_endproc +.LFE11: + .size set_answer, .-set_answer + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "Die Antwort lautet: %d\n" + .text + .globl main + .type main, @function +main: +.LFB12: + .cfi_startproc + subq $8, %rsp + .cfi_def_cfa_offset 16 + movl $42, %esi + leaq .LC0(%rip), %rdi + movl $0, %eax + call printf@PLT + movl $0, %eax + addq $8, %rsp + .cfi_def_cfa_offset 8 + ret + .cfi_endproc +.LFE12: + .size main, .-main + .ident "GCC: (Debian 8.3.0-6) 8.3.0" + .section .note.GNU-stack,"",@progbits diff --git a/20211202/preprocessor-2.c b/20211202/preprocessor-2.c new file mode 100644 index 0000000..c876b59 --- /dev/null +++ b/20211202/preprocessor-2.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#define VIER 4); + +int main (void) +{ + printf ("Die Antwort lautet: %d\n", VIER + return 0; +} diff --git a/20211202/preprocessor-3.c b/20211202/preprocessor-3.c new file mode 100644 index 0000000..17d6f17 --- /dev/null +++ b/20211202/preprocessor-3.c @@ -0,0 +1,9 @@ +#include <stdio.h> + +#define ZWEIMAL(X) 2 * X + +int main (void) +{ + printf ("Die Antwort lautet: %d\n", ZWEIMAL (23)); + return 0; +} diff --git a/20211202/preprocessor-4.c b/20211202/preprocessor-4.c new file mode 100644 index 0000000..2fa584c --- /dev/null +++ b/20211202/preprocessor-4.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define SECHS 1 + 5 +#define NEUN 8 + 1 + +int main (void) +{ + printf ("Die Antwort lautet: %d\n", SECHS * NEUN); + return 0; +} diff --git a/20211202/preprocessor-5.c b/20211202/preprocessor-5.c new file mode 100644 index 0000000..f5bd2e5 --- /dev/null +++ b/20211202/preprocessor-5.c @@ -0,0 +1,10 @@ +#include <stdio.h> + +#define SECHS (1 + 5) +#define NEUN (8 + 1) + +int main (void) +{ + printf ("Die Antwort lautet: %d\n", SECHS * NEUN); + return 0; +} diff --git a/20211202/preprocessor-6.c b/20211202/preprocessor-6.c new file mode 100644 index 0000000..e2b5e15 --- /dev/null +++ b/20211202/preprocessor-6.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello printf ("Hello!\n") +#define hallo printf ("Hallo!\n") + +#define english 1 + +int main (void) +{ + if (english) + hello; + else + hallo; + return 0; +} diff --git a/20211202/preprocessor-7.c b/20211202/preprocessor-7.c new file mode 100644 index 0000000..673d2a3 --- /dev/null +++ b/20211202/preprocessor-7.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello(x) printf ("Hello!\n") +#define hallo(x) printf ("Hallo!\n") + +#define english 1 + +int main (void) +{ + if (english) + hello (); + else + hallo (); + return 0; +} diff --git a/20211202/preprocessor-8.c b/20211202/preprocessor-8.c new file mode 100644 index 0000000..ab6f659 --- /dev/null +++ b/20211202/preprocessor-8.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello(x) printf ("Hello!\n"); printf ("World!\n"); +#define hallo(x) printf ("Hallo!\n"); printf ("Welt!\n"); + +#define english 1 + +int main (void) +{ + if (english) + hello (); + else + hallo (); + return 0; +} diff --git a/20211202/preprocessor-9.c b/20211202/preprocessor-9.c new file mode 100644 index 0000000..5258c1a --- /dev/null +++ b/20211202/preprocessor-9.c @@ -0,0 +1,15 @@ +#include <stdio.h> + +#define hello(x) { printf ("Hello!\n"); printf ("World!\n"); } +#define hallo(x) { printf ("Hallo!\n"); printf ("Welt!\n"); } + +#define english 1 + +int main (void) +{ + if (english) + hello (); + else + hallo (); + return 0; +} -- GitLab