#include "stdio.h" int fwrite(const void* buffer,int size,int count,FILE* file) { void* p; if ((file->mode & 3==FILE_OPEN_READ) && (file->mode & FILE_OPEN_PLUS==0)) return 0; if (file->mode & 3==FILE_OPEN_APPEND) file->filepos=file->filesize; count=count*size; if (file->buffersizefilepos+count) { p=realloc(file->buffer,(file->filepos+count)+(file->filepos+count)<<1); if (p==0) return 0; file->buffer=p; file->buffersize=(file->filepos+count)+(file->filepos+count)<<1; } if (file->filesizefilepos+count) file->filesize=file->filepos+count; memcpy(file->buffer+file->filepos,buffer,count); file->filepos+=count; return count; }