From 2f6e8b9ae2763e6415713481dafbf760605ab494 Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Fri, 15 Sep 2023 12:59:37 +0200 Subject: [PATCH 1/4] fix dd commands --- CMakeLists.txt | 102 ++++++++++++++++++++++---------------------- cmake_install.cmake | 6 +-- 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa149b5..01b9be2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,44 +5,44 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) include_directories(${PROJECT_SOURCE_DIR}) -add_executable( abc src/abc.c ) -add_executable( adder src/adder.c ) -add_executable( args src/args.c ) -add_executable( arrToBin src/arrToBin.c ) -add_executable( ascii src/ascii.c ) -add_executable( calculator src/calculator.c ) -add_executable( callreference src/callreference.c ) -add_executable( circular_shift src/circular_shift.c ) -add_executable( complex src/complex.c ) -add_executable( dividableBy7 src/dividableBy7.c ) -add_executable( structdump src/structdump.c ) -add_executable( echo src/echo.c ) -add_executable( echochar src/echochar.c ) -add_executable( euler src/euler.c ) -add_executable( factorial src/factorial.c ) -add_executable( fail src/fail.c ) -add_executable( fread src/fread.c ) -add_executable( hello-world src/hello-world.c ) -add_executable( options src/options.c ) -add_executable( pointermagic src/pointermagic.c ) -add_executable( primenumbers src/primenumbers.c ) -add_executable( print-syste-constants src/print-system-constants.c) -add_executable( quersumme src/quersumme.c ) -add_executable( readfile src/readfile.c ) -add_executable( redefinition src/redefinition.c ) -add_executable( redefinition-if src/redefinition-if.c ) -add_executable( return-specified src/return-specified.c ) -add_executable( scanf-test src/scanf-test.c ) -add_executable( scnaf-hex-test src/scnaf-hex-test.c ) -add_executable( signed-to-unsigned src/signed-to-unsigned.c ) -add_executable( sizeofs src/sizeofs.c ) -add_executable( success src/success.c ) -add_executable( sum src/sum.c ) -add_executable( tabtest src/tabtest.c ) -add_executable( umlaut src/umlaut.c ) -add_executable( unary-double-not src/unary-double-not.c ) -add_executable( warning src/warning.c ) -add_executable( pointer-arithmetic src/pointer-arithmetic.c ) +add_executable( abc src/abc.c ) +add_executable( adder src/adder.c ) +add_executable( args src/args.c ) +add_executable( arrToBin src/arrToBin.c ) +add_executable( ascii src/ascii.c ) +add_executable( calculator src/calculator.c ) +add_executable( callreference src/callreference.c ) +add_executable( circular_shift src/circular_shift.c ) +add_executable( complex src/complex.c ) +add_executable( dividableBy7 src/dividableBy7.c ) +add_executable( structdump src/structdump.c ) +add_executable( echo src/echo.c ) +add_executable( echochar src/echochar.c ) +add_executable( euler src/euler.c ) +add_executable( factorial src/factorial.c ) +add_executable( fail src/fail.c ) +add_executable( fread src/fread.c ) +add_executable( hello-world src/hello-world.c ) +add_executable( options src/options.c ) +add_executable( pointermagic src/pointermagic.c ) +add_executable( primenumbers src/primenumbers.c ) +add_executable( print-syste-constants src/print-system-constants.c) +add_executable( quersumme src/quersumme.c ) +add_executable( readfile src/readfile.c ) +add_executable( redefinition src/redefinition.c ) +add_executable( redefinition-if src/redefinition-if.c ) +add_executable( return-specified src/return-specified.c ) +add_executable( scanf-test src/scanf-test.c ) +add_executable( scnaf-hex-test src/scnaf-hex-test.c ) +add_executable( signed-to-unsigned src/signed-to-unsigned.c ) +add_executable( sizeofs src/sizeofs.c ) +add_executable( success src/success.c ) +add_executable( sum src/sum.c ) +add_executable( tabtest src/tabtest.c ) +add_executable( umlaut src/umlaut.c ) +add_executable( unary-double-not src/unary-double-not.c ) +add_executable( warning src/warning.c ) +add_executable( pointer-arithmetic src/pointer-arithmetic.c ) target_link_libraries(abc m) # link libm to abc @@ -50,24 +50,24 @@ project(huffman) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -add_executable( huffman src/huffman/src/huffman.c ) +add_executable( huffman src/huffman/src/huffman.c ) execute_process ( - COMMAND bash -c "mkdir -p src/huffman/testfiles" + COMMAND bash -c "mkdir -p src/huffman/testfiles" COMMAND bash -c "yes 'SAFJALJ AF OIAIFOsdp' | head -c 100KB > src/huffman/testfiles/small.txt" - COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/1K-random.img count=1KiB" - COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/10K-random.img count=10KiB" - COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/100K-random.img count=100KiB" - COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/1M-random.img count=1MiB" - COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/10M-random.img count=10MiB" - COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/1K-zero.img count=1KiB" - COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/10K-zero.img count=10KiB" - COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/100K-zero.img count=100KiB" - COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/1M-zero.img count=1MiB" - COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/10M-zero.img count=10MiB" + COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/1K-random.img count=1 bs=1KiB" + COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/10K-random.img count=1 bs=10KiB" + COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/100K-random.img count=1 bs=100KiB" + COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/1M-random.img count=1 bs=1MiB" + COMMAND bash -c "dd if=/dev/urandom of=src/huffman/testfiles/10M-random.img count=1 bs=10MiB" + COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/1K-zero.img count=1 bs=1KiB" + COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/10K-zero.img count=1 bs=10KiB" + COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/100K-zero.img count=1 bs=100KiB" + COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/1M-zero.img count=1 bs=1MiB" + COMMAND bash -c "dd if=/dev/zero of=src/huffman/testfiles/10M-zero.img count=1 bs=10MiB" COMMAND bash -c "echo -e \"Wer\ndas\nliest\nist\ndoof\n\" > src/huffman/testfiles/tiny.txt" COMMAND bash -c "yes 'lslfkpoipop iipfiasp' | head -c 1MB > src/huffman/testfiles/mid.txt" -) +) # TODO add condition to also generate bigger files # TODO add targets for these testfiles diff --git a/cmake_install.cmake b/cmake_install.cmake index 934c11e..623d27a 100644 --- a/cmake_install.cmake +++ b/cmake_install.cmake @@ -1,4 +1,4 @@ -# Install script for directory: /home/plex/Documents/code/c/c-basic +# Install script for directory: /home/cscherr/Documents/code/c/c-basic # Set the install prefix if(NOT DEFINED CMAKE_INSTALL_PREFIX) @@ -29,7 +29,7 @@ endif() # Install shared libraries without execute permission? if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "0") + set(CMAKE_INSTALL_SO_NO_EXE "1") endif() # Is this installation the result of a crosscompile? @@ -50,5 +50,5 @@ endif() string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/home/plex/Documents/code/c/c-basic/${CMAKE_INSTALL_MANIFEST}" +file(WRITE "/home/cscherr/Documents/code/c/c-basic/${CMAKE_INSTALL_MANIFEST}" "${CMAKE_INSTALL_MANIFEST_CONTENT}") From 50cfd605608441b7cdad9ba9554ff9a5a66f764b Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Fri, 15 Sep 2023 13:31:03 +0200 Subject: [PATCH 2/4] fib --- src/euler.c | 19 +++++++++---------- src/fib.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 src/fib.c diff --git a/src/euler.c b/src/euler.c index 30272da..07f0a7b 100644 --- a/src/euler.c +++ b/src/euler.c @@ -20,7 +20,7 @@ double factorial(double i) { // someone said i need 2 for loops. Totally wrong? for(int j=1;j +#include +#include + +const int START_VALUES[2] = {0, 1}; +const int LIMIT = 90; + +int main(int argc, char** argv) { + if (argc != 2) { + printf("usage: %s MAX_NUMBER\n", argv[0]); + exit(1); + } + int max = atoi(argv[1]); + if (max > LIMIT) { + printf("C does not provide a datatype large enough to compute fibonacci numbers > %d. (%d)\n", LIMIT, max); + exit(1); + } + uintmax_t* nums = malloc(max * sizeof(uintmax_t)); + nums[0] = START_VALUES[0]; + nums[1] = START_VALUES[1]; + + for(int i = 2; i < max+1; i++) { + nums[i] = nums[i-2] + nums[i-1]; + } + + for(int i = 0; i < max+1; i++) { + printf("%02d. %ju\n", i, nums[i]); + } +} From b9b41be2f4e602d25fe96012049e3ab8aa28428e Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Fri, 15 Sep 2023 13:31:06 +0200 Subject: [PATCH 3/4] reorder --- .gitignore | 1 + CMakeLists.txt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9986867..f3aef0c 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ build CMakeCache.txt Makefile src/huffman/testfiles +data diff --git a/CMakeLists.txt b/CMakeLists.txt index 01b9be2..562c62a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,12 +21,13 @@ add_executable( echochar src/echochar.c ) add_executable( euler src/euler.c ) add_executable( factorial src/factorial.c ) add_executable( fail src/fail.c ) +add_executable( fib src/fib.c ) add_executable( fread src/fread.c ) add_executable( hello-world src/hello-world.c ) add_executable( options src/options.c ) add_executable( pointermagic src/pointermagic.c ) add_executable( primenumbers src/primenumbers.c ) -add_executable( print-syste-constants src/print-system-constants.c) +add_executable( print-syste-constants src/print-system-constants.c ) add_executable( quersumme src/quersumme.c ) add_executable( readfile src/readfile.c ) add_executable( redefinition src/redefinition.c ) From 23622a79ec6fcf0ac21f014a5baf7f960202b1ac Mon Sep 17 00:00:00 2001 From: "Christoph J. Scherr" Date: Mon, 18 Sep 2023 14:58:57 +0200 Subject: [PATCH 4/4] readfile with cli arg --- src/readfile.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/readfile.c b/src/readfile.c index fb5f773..ad56c6f 100644 --- a/src/readfile.c +++ b/src/readfile.c @@ -1,9 +1,13 @@ #include #include -int main(void) +int main(int argc, char** argv) { - char filename[] = "file.txt"; + if (argc != 2) { + printf("usage: %s FILE", argv[0]); + exit(1); + } + char* filename = argv[1]; char buf[2]; FILE *fp;