From 091b9cba71a77dcfb06a6ceb4d6f1d6aa40633e2 Mon Sep 17 00:00:00 2001
From: Peter Gerwinski <peter.gerwinski@hs-bochum.de>
Date: Fri, 20 Oct 2023 00:04:50 +0200
Subject: [PATCH] Beispiele 19.10.2023

---
 20231019/arrays-05a.c      |  9 +++++++++
 20231019/arrays-05b.c      |  9 +++++++++
 20231019/arrays-05c.c      | 15 ++++++++++++++
 20231019/fhello.txt        |  1 +
 20231019/files-01.c        |  9 +++++++++
 20231019/files-02.c        | 12 ++++++++++++
 20231019/files-03.c        | 14 +++++++++++++
 20231019/files-04.c        | 14 +++++++++++++
 20231019/files-05.c        | 15 ++++++++++++++
 20231019/files-06.c        | 19 ++++++++++++++++++
 20231019/files-07.c        | 20 +++++++++++++++++++
 20231019/files-07.txt      | 40 ++++++++++++++++++++++++++++++++++++++
 20231019/files-08.c        | 13 +++++++++++++
 20231019/params-00.c       |  7 +++++++
 20231019/params-01.c       |  9 +++++++++
 20231019/params-02.c       |  9 +++++++++
 20231019/params-03.c       |  9 +++++++++
 20231019/side-effects-16.c | 12 ++++++++++++
 20231019/side-effects-17.c | 12 ++++++++++++
 20231019/side-effects-18.c | 13 +++++++++++++
 20231019/strings-01.c      |  9 +++++++++
 20231019/strings-02.c      |  9 +++++++++
 20231019/strings-03.c      |  9 +++++++++
 20231019/strings-04.c      |  9 +++++++++
 20231019/strings-05.c      | 10 ++++++++++
 20231019/strings-06.c      | 21 ++++++++++++++++++++
 20231019/strings-07.c      | 21 ++++++++++++++++++++
 20231019/strings-08.c      | 19 ++++++++++++++++++
 20231019/structs-01.c      | 15 ++++++++++++++
 20231019/structs-02.c      | 23 ++++++++++++++++++++++
 20231019/structs-03.c      | 23 ++++++++++++++++++++++
 20231019/variables-01.c    |  8 ++++++++
 20231019/variables-02.c    |  9 +++++++++
 33 files changed, 446 insertions(+)
 create mode 100644 20231019/arrays-05a.c
 create mode 100644 20231019/arrays-05b.c
 create mode 100644 20231019/arrays-05c.c
 create mode 100644 20231019/fhello.txt
 create mode 100644 20231019/files-01.c
 create mode 100644 20231019/files-02.c
 create mode 100644 20231019/files-03.c
 create mode 100644 20231019/files-04.c
 create mode 100644 20231019/files-05.c
 create mode 100644 20231019/files-06.c
 create mode 100644 20231019/files-07.c
 create mode 100644 20231019/files-07.txt
 create mode 100644 20231019/files-08.c
 create mode 100644 20231019/params-00.c
 create mode 100644 20231019/params-01.c
 create mode 100644 20231019/params-02.c
 create mode 100644 20231019/params-03.c
 create mode 100644 20231019/side-effects-16.c
 create mode 100644 20231019/side-effects-17.c
 create mode 100644 20231019/side-effects-18.c
 create mode 100644 20231019/strings-01.c
 create mode 100644 20231019/strings-02.c
 create mode 100644 20231019/strings-03.c
 create mode 100644 20231019/strings-04.c
 create mode 100644 20231019/strings-05.c
 create mode 100644 20231019/strings-06.c
 create mode 100644 20231019/strings-07.c
 create mode 100644 20231019/strings-08.c
 create mode 100644 20231019/structs-01.c
 create mode 100644 20231019/structs-02.c
 create mode 100644 20231019/structs-03.c
 create mode 100644 20231019/variables-01.c
 create mode 100644 20231019/variables-02.c

diff --git a/20231019/arrays-05a.c b/20231019/arrays-05a.c
new file mode 100644
index 0000000..8260614
--- /dev/null
+++ b/20231019/arrays-05a.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int prime[6] = { 2, 3, 5, 0, 7, 11 };
+  for (int *p = prime; *p; p++)
+    printf ("%d\n", *p);
+  return 0;
+}
diff --git a/20231019/arrays-05b.c b/20231019/arrays-05b.c
new file mode 100644
index 0000000..77e4c7c
--- /dev/null
+++ b/20231019/arrays-05b.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int prime[5] = { 2, 3, 5, 7, 11 };
+  for (int *p = prime; *p; p++)
+    printf ("%d\n", *p);
+  return 0;
+}
diff --git a/20231019/arrays-05c.c b/20231019/arrays-05c.c
new file mode 100644
index 0000000..8ba1334
--- /dev/null
+++ b/20231019/arrays-05c.c
@@ -0,0 +1,15 @@
+
+#include <stdio.h>
+
+int main (void)
+{
+  int pflll[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
+  int prime[8] = { 2, 3, 5, 7, 11, 13, 17, 19 };
+  printf ("prime:\n");
+  for (int *p = prime; *p; p++)
+    printf ("%d\n", *p);
+  printf ("pflll:\n");
+  for (int *q = pflll; *q; q++)
+    printf ("%d\n", *q);
+  return 0;
+}
diff --git a/20231019/fhello.txt b/20231019/fhello.txt
new file mode 100644
index 0000000..af5626b
--- /dev/null
+++ b/20231019/fhello.txt
@@ -0,0 +1 @@
+Hello, world!
diff --git a/20231019/files-01.c b/20231019/files-01.c
new file mode 100644
index 0000000..6548d9c
--- /dev/null
+++ b/20231019/files-01.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  fprintf (f, "Hello, world!\n");
+  fclose (f);
+  return 0;
+}
diff --git a/20231019/files-02.c b/20231019/files-02.c
new file mode 100644
index 0000000..6bd3fc9
--- /dev/null
+++ b/20231019/files-02.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+    }
+  return 0;
+}
diff --git a/20231019/files-03.c b/20231019/files-03.c
new file mode 100644
index 0000000..dad47ea
--- /dev/null
+++ b/20231019/files-03.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+    }
+  else
+    printf ("Fehlermeld!\n");
+  return 0;
+}
diff --git a/20231019/files-04.c b/20231019/files-04.c
new file mode 100644
index 0000000..31e6480
--- /dev/null
+++ b/20231019/files-04.c
@@ -0,0 +1,14 @@
+#include <stdio.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+    }
+  else
+    fprintf (stderr, "Fehlermeld!\n");
+  return 0;
+}
diff --git a/20231019/files-05.c b/20231019/files-05.c
new file mode 100644
index 0000000..46b01f8
--- /dev/null
+++ b/20231019/files-05.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+#include <errno.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+    }
+  else
+    fprintf (stderr, "Fehler Nr. %d\n", errno);
+  return 0;
+}
diff --git a/20231019/files-06.c b/20231019/files-06.c
new file mode 100644
index 0000000..ec3e8a7
--- /dev/null
+++ b/20231019/files-06.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+    }
+  else
+    {
+      char *msg = strerror (errno);
+      fprintf (stderr, "Fehler: %s\n", msg);
+    }
+  return 0;
+}
diff --git a/20231019/files-07.c b/20231019/files-07.c
new file mode 100644
index 0000000..607ffbd
--- /dev/null
+++ b/20231019/files-07.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+      return 0;
+    }
+  else
+    {
+      char *msg = strerror (errno);
+      fprintf (stderr, "Fehler: %s\n", msg);
+      return errno;
+    }
+}
diff --git a/20231019/files-07.txt b/20231019/files-07.txt
new file mode 100644
index 0000000..b8f268c
--- /dev/null
+++ b/20231019/files-07.txt
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (f)
+    {
+      fprintf (f, "Hello, world!\n");
+      fclose (f);
+      return 0;
+    }
+  else
+    {
+      char *msg = strerror (errno);
+      fprintf (stderr, "Fehler: %s\n", msg);
+      return errno;
+    }
+}
+cassini/home/peter/bo/2023ws/hp/20231019> gcc -Wall -O files-07.c -o files-07
+cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
+Fehler: Permission denied
+cassini/home/peter/bo/2023ws/hp/20231019> echo $?
+13
+cassini/home/peter/bo/2023ws/hp/20231019> rm fhello.txt
+rm: reguläre Datei (schreibgeschützt) 'fhello.txt' entfernen? y
+cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
+cassini/home/peter/bo/2023ws/hp/20231019> echo $?
+0
+cassini/home/peter/bo/2023ws/hp/20231019> ls -l fhello.txt
+-rw-r--r-- 1 peter peter 14 19. Okt 15:56 fhello.txt
+cassini/home/peter/bo/2023ws/hp/20231019> chmod -w fhello.txt
+cassini/home/peter/bo/2023ws/hp/20231019> ls -l fhello.txt
+-r--r--r-- 1 peter peter 14 19. Okt 15:56 fhello.txt
+cassini/home/peter/bo/2023ws/hp/20231019> ./files-07
+Fehler: Permission denied
+cassini/home/peter/bo/2023ws/hp/20231019> echo $?
+13
+cassini/home/peter/bo/2023ws/hp/20231019>
diff --git a/20231019/files-08.c b/20231019/files-08.c
new file mode 100644
index 0000000..383cb35
--- /dev/null
+++ b/20231019/files-08.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <errno.h>
+#include <error.h>
+
+int main (void)
+{
+  FILE *f = fopen ("fhello.txt", "w");
+  if (!f)
+    error (errno, errno, "cannot open file");
+  fprintf (f, "Hello, world!\n");
+  fclose (f);
+  return 0;
+}
diff --git a/20231019/params-00.c b/20231019/params-00.c
new file mode 100644
index 0000000..c1e45bf
--- /dev/null
+++ b/20231019/params-00.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main (int argc, char **argv)
+{
+  printf ("%s\n", *argv);
+  return 0;
+}
diff --git a/20231019/params-01.c b/20231019/params-01.c
new file mode 100644
index 0000000..e6e64ba
--- /dev/null
+++ b/20231019/params-01.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (int argc, char **argv)
+{
+  printf ("argc = %d\n", argc);
+  for (int i = 0; i < argc; i++)
+    printf ("argv[%d] = \"%s\"\n", i, argv[i]);
+  return 0;
+}
diff --git a/20231019/params-02.c b/20231019/params-02.c
new file mode 100644
index 0000000..3a52b55
--- /dev/null
+++ b/20231019/params-02.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (int argc, char *argv[])
+{
+  printf ("argc = %d\n", argc);
+  for (int i = 0; i < argc; i++)
+    printf ("argv[%d] = \"%s\"\n", i, argv[i]);
+  return 0;
+}
diff --git a/20231019/params-03.c b/20231019/params-03.c
new file mode 100644
index 0000000..0e932b3
--- /dev/null
+++ b/20231019/params-03.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (int argc, char **argv)
+{
+  printf ("argc = %d\n", argc);
+  for (int i = 0; *argv; i++, argv++)
+    printf ("argv[%d] = \"%s\"\n", i, *argv);
+  return 0;
+}
diff --git a/20231019/side-effects-16.c b/20231019/side-effects-16.c
new file mode 100644
index 0000000..09d985f
--- /dev/null
+++ b/20231019/side-effects-16.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+void add_verbose (int a, int b)
+{
+  printf ("%d + %d = %d\n", a, b, a + b);
+}
+
+int main (void)
+{
+  add_verbose (3, 7);
+  return 0;
+}
diff --git a/20231019/side-effects-17.c b/20231019/side-effects-17.c
new file mode 100644
index 0000000..11d4d45
--- /dev/null
+++ b/20231019/side-effects-17.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int add_verbose (int a, int b)
+{
+  printf ("%d + %d = %d\n", a, b, a + b);
+}
+
+int main (void)
+{
+  add_verbose (3, 7);
+  return 0;
+}
diff --git a/20231019/side-effects-18.c b/20231019/side-effects-18.c
new file mode 100644
index 0000000..5b4322f
--- /dev/null
+++ b/20231019/side-effects-18.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+
+int add_verbose (int a, int b)
+{
+  printf ("%d + %d = %d\n", a, b, a + b);
+  return 42;
+}
+
+int main (void)
+{
+  add_verbose (3, 7);
+  return 0;
+}
diff --git a/20231019/strings-01.c b/20231019/strings-01.c
new file mode 100644
index 0000000..81bc3cd
--- /dev/null
+++ b/20231019/strings-01.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char hello[] = "Hello, world!\n";
+  for (char *p = hello; *p; p++)
+    printf ("%d", *p);
+  return 0;
+}
diff --git a/20231019/strings-02.c b/20231019/strings-02.c
new file mode 100644
index 0000000..f1332bc
--- /dev/null
+++ b/20231019/strings-02.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char hello[] = "Hello\x00, world!\n";
+  for (char *p = hello; *p; p++)
+    printf ("%d", *p);
+  return 0;
+}
diff --git a/20231019/strings-03.c b/20231019/strings-03.c
new file mode 100644
index 0000000..4df3297
--- /dev/null
+++ b/20231019/strings-03.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char hello[] = "Hello, world!\n";
+  for (char *p = hello; *p; p++)
+    printf ("%c", *p);
+  return 0;
+}
diff --git a/20231019/strings-04.c b/20231019/strings-04.c
new file mode 100644
index 0000000..5c36db9
--- /dev/null
+++ b/20231019/strings-04.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char hello[] = { 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 10, 0 };
+  for (char *p = hello; *p; p++)
+    printf ("%c", *p);
+  return 0;
+}
diff --git a/20231019/strings-05.c b/20231019/strings-05.c
new file mode 100644
index 0000000..5c9a710
--- /dev/null
+++ b/20231019/strings-05.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+int main (void)
+{
+  char hello[] = { 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 10, 0 };
+  for (char *p = hello; *p; p++)
+    printf (" %02x", *p);
+  printf ("\n");
+  return 0;
+}
diff --git a/20231019/strings-06.c b/20231019/strings-06.c
new file mode 100644
index 0000000..268aa0d
--- /dev/null
+++ b/20231019/strings-06.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+
+int main (void)
+{
+  char hello[] = "Hello, world!\n";
+
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  return 0;
+
+  printf ("%s\n", hello + 7);
+  printf ("%zd\n", strlen (hello + 7));
+
+  hello[5] = 0;
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  return 0;
+}
diff --git a/20231019/strings-07.c b/20231019/strings-07.c
new file mode 100644
index 0000000..d9bbb48
--- /dev/null
+++ b/20231019/strings-07.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+
+int main (void)
+{
+  char hello[] = "Hello, world!\n";
+
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  printf ("%s\n", hello + 7);
+  printf ("%zd\n", strlen (hello + 7));
+
+  return 0;
+
+  hello[5] = 0;
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  return 0;
+}
diff --git a/20231019/strings-08.c b/20231019/strings-08.c
new file mode 100644
index 0000000..dd05111
--- /dev/null
+++ b/20231019/strings-08.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+#include <string.h>
+
+int main (void)
+{
+  char hello[] = "Hello, world!\n";
+
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  printf ("%s\n", hello + 7);
+  printf ("%zd\n", strlen (hello + 7));
+
+  hello[5] = 0;
+  printf ("%s\n", hello);
+  printf ("%zd\n", strlen (hello));
+
+  return 0;
+}
diff --git a/20231019/structs-01.c b/20231019/structs-01.c
new file mode 100644
index 0000000..4e01487
--- /dev/null
+++ b/20231019/structs-01.c
@@ -0,0 +1,15 @@
+#include <stdio.h>
+
+typedef struct
+{
+  char day, month;
+  int year;
+}
+date;
+
+int main (void)
+{
+  date today = { 19, 10, 2023 };
+  printf ("%d.%d.%d\n", today.day, today.month, today.year);
+  return 0;
+}
diff --git a/20231019/structs-02.c b/20231019/structs-02.c
new file mode 100644
index 0000000..00e0bfe
--- /dev/null
+++ b/20231019/structs-02.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+typedef struct
+{
+  char day, month;
+  int year;
+}
+date;
+
+void set_date (date *d)
+{
+  (*d).day = 17;
+  (*d).month = 10;
+  (*d).year = 2022;
+}
+
+int main (void)
+{
+  date today;
+  set_date (&today);
+  printf ("%d.%d.%d\n", today.day, today.month, today.year);
+  return 0;
+}
diff --git a/20231019/structs-03.c b/20231019/structs-03.c
new file mode 100644
index 0000000..7decf4b
--- /dev/null
+++ b/20231019/structs-03.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+
+typedef struct
+{
+  char day, month;
+  int year;
+}
+date;
+
+void set_date (date *d)
+{
+  d->day = 17;
+  d->month = 10;
+  d->year = 2022;
+}
+
+int main (void)
+{
+  date today;
+  set_date (&today);
+  printf ("%d.%d.%d\n", today.day, today.month, today.year);
+  return 0;
+}
diff --git a/20231019/variables-01.c b/20231019/variables-01.c
new file mode 100644
index 0000000..fe8f18a
--- /dev/null
+++ b/20231019/variables-01.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+
+int main (void)
+{
+  int a;
+  printf ("a = %d\n", a);
+  return 0;
+}
diff --git a/20231019/variables-02.c b/20231019/variables-02.c
new file mode 100644
index 0000000..dd0c808
--- /dev/null
+++ b/20231019/variables-02.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int a;
+
+int main (void)
+{
+  printf ("a = %d\n", a);
+  return 0;
+}
-- 
GitLab