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