goto defer\r
\r
const char *c_slurp_file(const char* filename, int *file_size) {\r
- FILE* f = fopen(filename, "rb");\r
+ FILE* f = fopen(filename, "r");\r
char* result = NULL;\r
\r
if (f == NULL){\r
defer(NULL);\r
}\r
\r
- *file_size = (int)fsize;\r
-\r
result = C_MALLOC(sizeof(char)*(fsize+1));\r
\r
if (result == NULL){\r
defer(NULL);\r
}\r
\r
- if (fread((char*)result, sizeof(char), fsize, f) != fsize){\r
- c_log_error("'%s': %s", filename, strerror(errno));\r
- defer(NULL);\r
- }\r
+ size_t read = fread((char*)result, sizeof(char), fsize, f);\r
+\r
+ *file_size = (int)read;\r
\r
// set null-terminator\r
- result[fsize] = '\0';\r
+ result[read] = '\0';\r
\r
defer:\r
if (f) fclose(f);\r
[INFO] buff: '#define COMMONLIB_IMPLEMENTATION
-
#include "../commonlib.h"
-
-
int main(void) {
-
int file_size = 0;
-
const char *buff = c_slurp_file(__FILE__, &file_size);
-
-
if (file_size < 0) { return 1; }
-
-
c_log_info("buff: '%s' (%d bytes)", buff, file_size);
-
-
// We don't care about leaking memory since we are just exiting right away!
-
return 0;
-
}
-
-' (375 bytes)
+' (353 bytes)
int main(void) {
int file_size = 0;
const char *buff = c_slurp_file(__FILE__, &file_size);
-
+
if (file_size < 0) { return 1; }
c_log_info("buff: '%s' (%d bytes)", buff, file_size);
-
+
// We don't care about leaking memory since we are just exiting right away!
return 0;
}