blob: c91500469d663ba2f7509ca72717560f70a0c620 [file] [log] [blame]
#include <stdio.h>
size_t memfile_write(FILE *instance, const char *bp, size_t n)
{
struct MemFile *f = (struct MemFile*)instance;
size_t i = 0;
while (n--)
{
f->bytes_written++;
if (f->bytes_written <= f->size)
{
*f->buffer++ = *bp++;
i++;
}
}
return i;
}
const struct File_methods MemFile_methods = {
&memfile_write,
NULL
};
FILE *fmemopen_w(struct MemFile* storage, char *buffer, size_t size)
{
storage->file.vmt = &MemFile_methods;
storage->buffer = buffer;
storage->bytes_written = 0;
storage->size = size;
return (FILE*)storage;
}