Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include "stdio.h"
  2. int fwrite(const void* buffer,int size,int count,FILE* file)
  3. {
  4.         void* p;
  5.         if ((file->mode & 3==FILE_OPEN_READ) && (file->mode & FILE_OPEN_PLUS==0))
  6.                 return 0;
  7.         if (file->mode & 3==FILE_OPEN_APPEND)
  8.                 file->filepos=file->filesize;
  9.         count=count*size;              
  10.         if (file->buffersize<file->filepos+count)
  11.         {
  12.                 p=realloc(file->buffer,(file->filepos+count)+(file->filepos+count)<<1);
  13.                 if (p==0)
  14.                         return 0;
  15.                 file->buffer=p;
  16.                 file->buffersize=(file->filepos+count)+(file->filepos+count)<<1;
  17.         }
  18.         if (file->filesize<file->filepos+count)
  19.                 file->filesize=file->filepos+count;
  20.         memcpy(file->buffer+file->filepos,buffer,count);
  21.         file->filepos+=count;
  22.         return count;
  23. }