diff options
author | David Phillips <david@sighup.nz> | 2017-10-02 23:59:34 +1300 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2017-10-03 00:00:31 +1300 |
commit | 630135558c432a4cae1e74fdad09007ee17932ad (patch) | |
tree | ceab9848d4db4ff9d76f7070b2e87761bd41d0bf /slurp.c | |
parent | efeab5984a62ad6d7a4a7285e2fc7275c38339c5 (diff) | |
download | sand-leek-630135558c432a4cae1e74fdad09007ee17932ad.tar.xz |
Dump WIP of opencl port
Diffstat (limited to 'slurp.c')
-rw-r--r-- | slurp.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -0,0 +1,31 @@ +#include <stdio.h> +#include <stdlib.h> + +#define BUFFER_STEP 10240 + +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; + printf("size is %d\n",*size); + buffer = realloc(buffer, *size); + if (!buffer) { + perror("realloc"); + return NULL; + } + } + if (ferror(f)) { + perror("slurp/fread"); + } + return buffer; +} |