Open files always

This commit is contained in:
jl777
2019-04-11 03:23:38 -11:00
parent 11d424de81
commit 67516820dc

View File

@@ -2543,12 +2543,11 @@ int64_t komodo_priceave(int64_t *correlated,int32_t cskip)
void komodo_pricesinit() void komodo_pricesinit()
{ {
int32_t i; int32_t i,createflag = 0;
boost::filesystem::path pricefname,pricesdir = GetDataDir() / "prices"; boost::filesystem::path pricefname,pricesdir = GetDataDir() / "prices";
fprintf(stderr,"pricesinit (%s)\n",pricesdir.string().c_str()); fprintf(stderr,"pricesinit (%s)\n",pricesdir.string().c_str());
if (!boost::filesystem::exists(pricesdir)) if (!boost::filesystem::exists(pricesdir))
{ boost::filesystem::create_directories(pricesdir), createflag = 1;
boost::filesystem::create_directories(pricesdir);
for (i=0; i<KOMODO_MAXPRICES; i++) for (i=0; i<KOMODO_MAXPRICES; i++)
{ {
if ( komodo_pricename(PRICES[i].symbol,i) == 0 ) if ( komodo_pricename(PRICES[i].symbol,i) == 0 )
@@ -2556,19 +2555,21 @@ void komodo_pricesinit()
if ( i == 0 ) if ( i == 0 )
strcpy(PRICES[i].symbol,"rawprices"); strcpy(PRICES[i].symbol,"rawprices");
pricefname = pricesdir / PRICES[i].symbol; pricefname = pricesdir / PRICES[i].symbol;
PRICES[i].fp = fopen(pricefname.string().c_str(), "wb+"); PRICES[i].fp = fopen(pricefname.string().c_str(), createflag != 0 ? "wb+" : "rb+");
if ( createflag != 0 )
{
fseek(PRICES[i].fp,(2*PRICES_DAYWINDOW+PRICES_SMOOTHWIDTH) * sizeof(int64_t) * 3,SEEK_SET); fseek(PRICES[i].fp,(2*PRICES_DAYWINDOW+PRICES_SMOOTHWIDTH) * sizeof(int64_t) * 3,SEEK_SET);
fputc(0,PRICES[i].fp); fputc(0,PRICES[i].fp);
fflush(PRICES[i].fp); fflush(PRICES[i].fp);
} }
if ( i > 0 && PRICES[0].fp != 0 ) }
if ( i > 0 && PRICES[0].fp != 0 && createflag != 0 )
{ {
fseek(PRICES[0].fp,(2*PRICES_DAYWINDOW+PRICES_SMOOTHWIDTH) * sizeof(uint32_t) * i,SEEK_SET); fseek(PRICES[0].fp,(2*PRICES_DAYWINDOW+PRICES_SMOOTHWIDTH) * sizeof(uint32_t) * i,SEEK_SET);
fputc(0,PRICES[0].fp); fputc(0,PRICES[0].fp);
fflush(PRICES[0].fp); fflush(PRICES[0].fp);
} }
} }
}
void komodo_pricesupdate(int32_t height,CBlock *pblock) void komodo_pricesupdate(int32_t height,CBlock *pblock)
{ {