Subversion Repositories Kolibri OS

Rev

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

  1. #include <stdio.h>
  2. #include <kolibrisys.h>
  3.  
  4. int fwrite(void *buffer,int size,int count,FILE* file)
  5. {
  6.         dword res;
  7.         dword fullsize;
  8.  
  9.         if (file->mode==FILE_OPEN_READ) return 0;
  10.  
  11.         if (file->mode==FILE_OPEN_APPEND)
  12.                 file->filepos=file->filesize;
  13.         fullsize=count*size;           
  14.        
  15.         if ((file->filesize)<(file->filepos+fullsize))  file->filesize=file->filepos+fullsize;
  16.  
  17.         /*
  18.         if (file->mode==FILE_OPEN_APPEND)
  19.         {
  20.                 file->filepos==file->filesize;
  21.                 res=_ksys_appendtofile(file->filename,file->filepos,fullsize,buffer);
  22.                 if (res==0)
  23.                 {
  24.                         file->filepos+=fullsize;
  25.                         fullsize=fullsize/size;
  26.                         return(fullsize);
  27.                 }
  28.                 else return(0);
  29.        
  30.         }
  31.         */
  32.         if ((file->mode==FILE_OPEN_WRITE) || (file->mode==FILE_OPEN_APPEND))
  33.         {
  34.                 if (file->filepos==0)
  35.                 {       //file mot craeted yet
  36.                         res=_ksys_rewritefile(file->filename,fullsize,buffer);
  37.                         if (res==0)
  38.                         {
  39.                                 file->filepos+=fullsize;
  40.                                 fullsize=fullsize/count;
  41.                                 return(fullsize);
  42.                         }
  43.                         else return(0);
  44.                 }
  45.                 else
  46.                 {      
  47.                         res=_ksys_appendtofile(file->filename,file->filepos,fullsize,buffer);  
  48.                         if (res==0)
  49.                         {
  50.                                 file->filepos+=fullsize;
  51.                                 fullsize=fullsize/count;
  52.                                 return(fullsize);
  53.                         }
  54.                         else return(0);
  55.                 }
  56.         }
  57.         else return(0);
  58. }