From 171195fbd624a3ada693400b29b4805095a52569 Mon Sep 17 00:00:00 2001 From: rasmus Date: Mon, 10 Mar 2025 13:20:24 +0100 Subject: [PATCH] Add file reader. Add bug that returns a smaller string than it should be. --- HTML/index.html | 25 +++++++++++++++++++++++++ WebServer | Bin 0 -> 17024 bytes include/fileReader.h | 7 +++++++ makefile | 21 ++++++++++++++++----- src/fileReader.c | 34 ++++++++++++++++++++++++++++++++++ src/main.c | 7 +++---- 6 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 HTML/index.html create mode 100755 WebServer create mode 100644 include/fileReader.h create mode 100644 src/fileReader.c diff --git a/HTML/index.html b/HTML/index.html new file mode 100644 index 0000000..ea4f298 --- /dev/null +++ b/HTML/index.html @@ -0,0 +1,25 @@ + + + + + + + + + Hello, world! + + + + + + + + + + + +

Hello, world!

+ + + + diff --git a/WebServer b/WebServer new file mode 100755 index 0000000000000000000000000000000000000000..fa2306040d4e4a77951329dd647854e87583edcb GIT binary patch literal 17024 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 literal 0 HcmV?d00001 diff --git a/include/fileReader.h b/include/fileReader.h new file mode 100644 index 0000000..646d366 --- /dev/null +++ b/include/fileReader.h @@ -0,0 +1,7 @@ +#ifndef FILEREADER_H +#define FILEREADER_H + +char *ReadHTML(char path[]); +int GetFilesize(FILE *file_ptr); + +#endif \ No newline at end of file diff --git a/makefile b/makefile index 14a478e..f44e6cf 100644 --- a/makefile +++ b/makefile @@ -3,14 +3,25 @@ CC = gcc # C compiler CFLAGS = -O2 # Compiler flags (optimization level) -main: main.o +SRC_DIR = src +BUILD_DIR = build +BIN_DIR = bin +EXECUTABLE = WebServer + +# Create directories +$(shell mkdir -p $(BUILD_DIR) $(BIN_DIR)) + +SOURCES = $(wildcard $(SRC_DIR)/*.c) +OBJECT_FILES = $(SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)/%.o) + +$(EXECUTABLE): $(OBJECT_FILES) $(CC) $(CFLAGS) -o $@ $^ -main.o: main.c - $(CC) $(CFLAGS) -c $< +$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c + $(CC) $(CFLAGS) -c $< -o $@ run: - ./main + ./$(EXECUTABLE) clean: - rm -f *.o + rm -f $(BUILD_DIR)/*.o $(BIN_DIR)/* diff --git a/src/fileReader.c b/src/fileReader.c new file mode 100644 index 0000000..342e255 --- /dev/null +++ b/src/fileReader.c @@ -0,0 +1,34 @@ +#include +#include "../include/fileReader.h" + +char *ReadHTML(char path[]) { + FILE *file_ptr = fopen(path, "r"); + char file[GetFilesize(file_ptr)]; + char ch; + int i = 0; + + if (NULL == file_ptr) { + printf("File can't be opened \n"); + } + + while ((ch = fgetc(file_ptr)) != EOF) { + file[i] = ch; + i++; + } + + fclose(file_ptr); + + return file; +} + +int GetFilesize(FILE *file_ptr) { + int prev = ftell(file_ptr); + + fseek(file_ptr, 0L, SEEK_END); + + int size = ftell(file_ptr); + + fseek(file_ptr, prev, SEEK_SET); + + return size; +} \ No newline at end of file diff --git a/src/main.c b/src/main.c index 3350b8e..4aa87b5 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,7 @@ #include +#include "../include/fileReader.h" int main() { - - - - + char *file = ReadHTML("/home/skingging/Documents/Projects/C/C-Webserver/HTML/index.html"); + printf("Size: %d", sizeof(file)); } \ No newline at end of file