Mercurial > hg > dmlib
changeset 1474:6b1f41ca300a
Add dmWriteDataFile() helper function.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 11 May 2018 01:59:49 +0300 |
parents | c543f5ae92d5 |
children | 7729fefe8e57 |
files | src/dmfile.c src/dmfile.h |
diffstat | 2 files changed, 37 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dmfile.c Fri May 11 01:59:37 2018 +0300 +++ b/src/dmfile.c Fri May 11 01:59:49 2018 +0300 @@ -58,6 +58,42 @@ #undef DM_DEFINE_FFUNC +int dmWriteDataFile(FILE *fh, const char *filename, const Uint8 *buf, const size_t bufSize) +{ + int res; + + if (fh == NULL && filename != NULL) + { + if ((fh = fopen(filename, "wb")) == NULL) + { + res = dmGetErrno(); + return dmError(res, + "Could not open '%s' for writing: %s.\n", + filename, dmErrorStr(res)); + } + } + + if (fh == NULL) + { + return dmError(DMERR_NULLPTR, + "NULL filename and stream pointers.\n"); + } + + if (fwrite(buf, bufSize, 1, fh) != 1) + { + res = dmGetErrno(); + dmError(res, + "Error writing data to '%s': %s\n", + filename, dmErrorStr(res)); + } + + if (fh != NULL) + fclose(fh); + + return res; +} + + #define BUF_SIZE_INITIAL (16*1024) #define BUF_SIZE_GROW (4*1024)
--- a/src/dmfile.h Fri May 11 01:59:37 2018 +0300 +++ b/src/dmfile.h Fri May 11 01:59:49 2018 +0300 @@ -31,6 +31,7 @@ BOOL dm_fwrite_byte(FILE *f, const Uint8); +int dmWriteDataFile(FILE *outFile, const char *filename, const Uint8 *buf, const size_t bufSize); int dmReadDataFile(FILE *inFile, const char *filename, Uint8 **pbuf, size_t *pbufSize);