return r;
}
-int pakfire_read_file_into_buffer(FILE* f, char** buffer, size_t* len) {
- if (!f)
- return -EBADF;
-
- int r = fseek(f, 0, SEEK_END);
- if (r)
- return r;
-
- // Save length of file
- *len = ftell(f);
-
- // Go back to the start
- r = fseek(f, 0, SEEK_SET);
- if (r)
- return r;
-
- // Allocate buffer
- *buffer = malloc((sizeof(**buffer) * *len) + 1);
- if (!*buffer)
- return -ENOMEM;
-
- // Read content
- fread(*buffer, *len, sizeof(**buffer), f);
-
- // Check we encountered any errors
- r = ferror(f);
- if (r)
- return r;
-
- // Terminate the buffer
- (*buffer)[*len] = '\0';
-
- return 0;
-}
-
/*
Maps a file descriptor into memory
*/
return n;
}
-int pakfire_read_file_into_buffer(FILE* f, char** buffer, size_t* len);
int pakfire_mmap(int fd, char** data, size_t* length);
const char* pakfire_path_relpath(const char* root, const char* path);