diff --git a/20231019/arrays-05a.c b/20231019/arrays-05a.c new file mode 100644 index 0000000000000000000000000000000000000000..8260614a5a9480954812ad3f26c1e0ebe0ca33b1 --- /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 0000000000000000000000000000000000000000..77e4c7c635611bc418d07561732f5b7d5fc28f36 --- /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 0000000000000000000000000000000000000000..8ba13348f3e7f39817985c13b0bb04670427e0b5 --- /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 0000000000000000000000000000000000000000..af5626b4a114abcb82d63db7c8082c3c4756e51b --- /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 0000000000000000000000000000000000000000..6548d9c81c73a7f3da8b1b2e62290bc8029d11f0 --- /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 0000000000000000000000000000000000000000..6bd3fc97506fab7643dfe4d59a957cfa1a600750 --- /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 0000000000000000000000000000000000000000..dad47ea0323d4a7617d2633feb867a50d6f7139c --- /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 0000000000000000000000000000000000000000..31e648038015326734ec24ae68bf20ceb6580cb6 --- /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 0000000000000000000000000000000000000000..46b01f8c194625bf152b5bab3fb78eaa107886de --- /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 0000000000000000000000000000000000000000..ec3e8a75337d699d4cade3e6ebadaaaef196ffaa --- /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 0000000000000000000000000000000000000000..607ffbd466e3c8d86f54b37297dea559bc2d3352 --- /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 0000000000000000000000000000000000000000..b8f268c1b5e29e4c83472ac85753873e317a4dc2 --- /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 0000000000000000000000000000000000000000..383cb352d1973225aaeef9c01373c879a10fd433 --- /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 0000000000000000000000000000000000000000..c1e45bf91d0d2d6c87dbe47fd0500dac073860cd --- /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 0000000000000000000000000000000000000000..e6e64ba029e1042aff60960fc8b7c3d4d5d8e2e2 --- /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 0000000000000000000000000000000000000000..3a52b5577b79ad0025786c830ae09d46737d1f26 --- /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 0000000000000000000000000000000000000000..0e932b379ce3c7381241c8d8d58d2a8cad4a2f76 --- /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 0000000000000000000000000000000000000000..09d985fad681138e9a922a7f21e2379d474604b0 --- /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 0000000000000000000000000000000000000000..11d4d45cf9dbf566d29c5b8e27a70e3617067d40 --- /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 0000000000000000000000000000000000000000..5b4322f1db9ea2cdda1f6a5c7257c51c2e332879 --- /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 0000000000000000000000000000000000000000..81bc3cda8affb6268786ac989dd2907d9a84783a --- /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 0000000000000000000000000000000000000000..f1332bcc920a29a78ef749a7b92a88a07f0e4238 --- /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 0000000000000000000000000000000000000000..4df32974a15ef2752512cc8b9889381b5a0917cd --- /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 0000000000000000000000000000000000000000..5c36db92dac8129b66d1f0ff6b709534b9e1bdb3 --- /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 0000000000000000000000000000000000000000..5c9a7109872f32cf1a2262c4ef61cd24c60a3ab5 --- /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 0000000000000000000000000000000000000000..268aa0dd98f39a5376f5988fa861b3b48b7a9fe4 --- /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 0000000000000000000000000000000000000000..d9bbb48f6f45cc3aec24a3218bd7b0adc9445d0a --- /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 0000000000000000000000000000000000000000..dd05111f79e0573d616522593362f6f93beb89e7 --- /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 0000000000000000000000000000000000000000..4e014871552a86fa1b031c58d90274622b67309f --- /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 0000000000000000000000000000000000000000..00e0bfecfc64464c668ba88e8a741481b919b574 --- /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 0000000000000000000000000000000000000000..7decf4b72015984f5c733873dfb6eb0c856f9f3b --- /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 0000000000000000000000000000000000000000..fe8f18ab9562d63a15d0c4b9a227d9f64b398ea7 --- /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 0000000000000000000000000000000000000000..dd0c8085d48ca6807c2410779b7101e839b23cc1 --- /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; +}