forked from KolibriOS/kolibrios
initial import of metcc project
git-svn-id: svn://kolibrios.org@145 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
23
programs/develop/metcc/trunk/libc/file/fwrite.c
Normal file
23
programs/develop/metcc/trunk/libc/file/fwrite.c
Normal file
@@ -0,0 +1,23 @@
|
||||
#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->buffersize<file->filepos+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->filesize<file->filepos+count)
|
||||
file->filesize=file->filepos+count;
|
||||
memcpy(file->buffer+file->filepos,buffer,count);
|
||||
file->filepos+=count;
|
||||
return count;
|
||||
}
|
Reference in New Issue
Block a user