12 inline unsigned char *lglReadFiled(FILE *file,
size_t *bytes,
const size_t blocksize=1<<20)
14 unsigned char *data, *data2;
24 if ((data=(
unsigned char *)malloc(blocksize)) == NULL)
return(NULL);
28 if ((data2=(
unsigned char *)realloc(data, cnt+blocksize)) == NULL) {free(data);
return(NULL);}
31 blkcnt = fread(&data[cnt], 1, blocksize, file);
34 while (blkcnt == blocksize);
42 if ((data2=(
unsigned char *)realloc(data, cnt)) == NULL) {free(data);
return(NULL);}
50 inline unsigned char *lglReadFile(
const char *filename,
size_t *bytes)
55 if ((file=fopen(filename,
"rb"))==NULL)
return(NULL);
56 data = lglReadFiled(file, bytes);
62 inline std::string lglReadTextFile(
const char *filename)
69 data = lglReadFile(filename, &bytes);
73 text = std::string((
char *)data, bytes);
80 inline std::string lglReadTextFile(
const std::string &filename)
82 return(lglReadTextFile(filename.c_str()));
85 inline bool lglWriteFile(
const char *filename,
unsigned char *chunk,
size_t bytes)
90 if ((file=fopen(filename,
"wb"))==NULL)
return(
false);
91 count = fwrite((
void *)chunk, 1, bytes, file);
94 return(count == bytes);
97 inline bool lglWriteTextFile(
const char *filename,
const std::string &text)
99 return(lglWriteFile(filename, (
unsigned char *)text.c_str(), text.size()));
102 inline bool lglWriteTextFile(
const std::string &filename,
const std::string &text)
104 return(lglWriteTextFile(filename.c_str(), text));