diff --git a/include/cosms-core/file.h b/include/cosms-core/file.h index 45fd495..2053faa 100644 --- a/include/cosms-core/file.h +++ b/include/cosms-core/file.h @@ -26,4 +26,6 @@ typedef enum { CosmsFileError cosms_core_file_read(const char *path, char **content, unsigned long long *size); CosmsFileError cosms_core_file_write(const char *path, const char *content, unsigned long long size, bool override); +const char *cosms_core_file_error_string(CosmsFileError error); + #endif diff --git a/src/file.c b/src/file.c index b699e62..cf6c189 100644 --- a/src/file.c +++ b/src/file.c @@ -230,3 +230,37 @@ CosmsFileError cosms_core_file_write(const char *path, const char *content, unsi return COSMS_FILE_OK; } + +const char *cosms_core_file_error_string(CosmsFileError error) { + switch(error) { + case COSMS_FILE_OK: + return "cosms-file everything ok"; + + case COSMS_FILE_NOT_FOUND: + return "cosms-file path not found"; + + case COSMS_FILE_NO_ACCESS: + return "cosms-file no access"; + + case COSMS_FILE_LIMIT_REACHED: + return "cosms-file to many open files"; + + case COSMS_FILE_COULD_NOT_READ_SIZE: + return "cosms-file failed to read size"; + + case COSMS_FILE_UNKOWN_ERROR: + return "cosms-file unkown error occured"; + + case COSMS_FILE_FAILED_TO_ALLOCATE: + return "cosms-file failed to allocate memory"; + + case COSMS_FILE_FAILED_TO_READ: + return "cosms-file failed to read content of file"; + + case COSMS_FILE_FAILED_TO_WRITE: + return "cosms-file failed to write content to file"; + + default: + return NULL; + } +} \ No newline at end of file diff --git a/tests/main.c b/tests/main.c index 0b3de1d..f6b1706 100644 --- a/tests/main.c +++ b/tests/main.c @@ -7,17 +7,15 @@ int main(void) { char *buffer; CosmsFileError error = cosms_core_file_read("test.txt", &buffer, &buffer_size); if (error != COSMS_FILE_OK) { - fprintf(stderr, "failed to read file exited with error code: %d\n", error); - return -1; + fprintf(stderr, "error(%d): %s\n", error, cosms_core_file_error_string(error)); + } else { + printf("file read with content:\n%s\n", buffer); } - printf("File read with content:\n%s\n", buffer); - char *temp_buffer = "Hello, World!"; error = cosms_core_file_write("write-file.txt", temp_buffer, 13, true); if (error != COSMS_FILE_OK) { - fprintf(stderr, "failed to write file exited with error code: %d\n", error); - return -1; + fprintf(stderr, "error(%d): %s\n", error, cosms_core_file_error_string(error)); } return 0;