covid-sim
BinIO.cpp
1 #include <stdio.h>
2 #include "BinIO.h"
3 
4 size_t fwrite_big(void *buffer,size_t size,size_t count, FILE *stream)
5 {
6  const unsigned long long mx=0x80000000;
7  unsigned long long j,n,st;
8  size_t ret=0;
9  char *buf2;
10 
11  st=mx/((unsigned long long) size);
12  n=count/st;
13  for(j=0;j<n;j++)
14  {
15  buf2=((char *)buffer)+j*st*size;
16  ret+=(fwrite(buf2,size,(size_t) st,stream));
17  }
18  buf2=((char *)buffer)+n*st*size;
19  ret+=(fwrite(buf2,size,(size_t) (count-n*st),stream));
20  return ret;
21 }
22 
23 size_t fread_big(void *buffer,size_t size,size_t count, FILE *stream)
24 {
25  const unsigned long long mx=0x80000000;
26  unsigned long long j,n,st;
27  size_t ret=0;
28  char *buf2;
29 
30  st=mx/((unsigned long long) size);
31  n=count/st;
32  for(j=0;j<n;j++)
33  {
34  buf2=((char *)buffer)+j*st*size;
35  ret+=(fread(buf2,size,(size_t) st,stream));
36  }
37  buf2=((char *)buffer)+n*st*size;
38  ret+=(fread(buf2,size,(size_t) (count-n*st),stream));
39  return ret;
40 }