blob: 5691661a517c7c25a26341c07301a2a4fbd5e09f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <sys/types.h>
#include "dietstdio.h"
#include <unistd.h>
size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream) {
int res;
#ifdef WANT_BUFFERED_STDIO
long len=size*nmemb;
long i;
if (len>BUFSIZE || (stream->flags&NOBUF)) {
if (!(stream->flags&NOBUF)) fflush(stream);
res=write(stream->fd,ptr,size*nmemb);
} else {
register const unsigned char *c=ptr;
for (i=size*nmemb; i>0; --i,++c)
if (fputc(*c,stream)) {
res=-1;
break;
}
res=size*nmemb;
}
#else
res=write(stream->fd,ptr,size*nmemb);
#endif
if (res<0) {
stream->flags|=ERRORINDICATOR;
return 0;
}
return size?res/size:0;
}
|