int __aug_close_memstream(struct memstream *ms) { #if !HAVE_OPEN_MEMSTREAM rewind(ms->stream); ms->buf = fread_file_lim(ms->stream, MAX_READ_LEN, &(ms->size)); #endif if (fclose(ms->stream) == EOF) { FREE(ms->buf); ms->size = 0; return -1; } return 0; }
char* xfread_file(FILE *fp) { char *result; size_t len; if (!fp) return NULL; result = fread_file_lim(fp, MAX_READ_LEN, &len); if (result != NULL && len <= MAX_READ_LEN && (int) len == len) return result; free(result); return NULL; }
char* xread_file(const char *path) { FILE *fp = fopen(path, "r"); char *result; size_t len; if (!fp) return NULL; result = fread_file_lim(fp, MAX_READ_LEN, &len); fclose (fp); if (result != NULL && len <= MAX_READ_LEN && (int) len == len) return result; free(result); return NULL; }