diff options
author | David Phillips <david@sighup.nz> | 2017-01-21 16:59:29 +1300 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2017-01-21 16:59:29 +1300 |
commit | ff7e90e5db1c82cab7dc743dc2f8b7fd195754a5 (patch) | |
tree | bd912a942eef8f97a00059a5fb0317f1703378b8 /slurp.c | |
parent | dcba68a5a967967d87a04be9165715fd49ffae3e (diff) | |
download | fractal-gen-opencl-ff7e90e5db1c82cab7dc743dc2f8b7fd195754a5.tar.xz |
Add early-days source files
Diffstat (limited to 'slurp.c')
-rw-r--r-- | slurp.c | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> + +#define BUFFER_STEP 1024 + +char *slurp(FILE *f, size_t *size) +{ + char *buffer = NULL; + size_t nread = 0; + + buffer = malloc(BUFFER_STEP); + if (!buffer) { + perror("malloc"); + return NULL; + } + + while (!feof(f)) { + nread = fread(&buffer[*size], 1, BUFFER_STEP, f); + *size += nread; + buffer = realloc(buffer, *size); + if (!buffer) { + perror("realloc"); + return NULL; + } + } + if (ferror(f)) { + perror("slurp/fread"); + } + return buffer; +} |