29 #ifndef _COMBBLAS_FILE_HEADER_
30 #define _COMBBLAS_FILE_HEADER_
51 f = fopen(inputname.c_str(),
"rb");
53 memset(&hinfo, 0,
sizeof(hinfo));
56 cerr <<
"Problem reading binary input file\n";
61 size_t result = fread(fourletters,
sizeof(
char), 4, f);
62 fourletters[4] =
'\0';
63 if (result != 4) { cout <<
"Error in fread of header, only " << result <<
" entries read" << endl;
return hinfo;}
65 if(strcmp(fourletters,
"HKDT") != 0)
69 hinfo.fileexists =
true;
74 hinfo.fileexists =
true;
75 hinfo.headerexists =
true;
79 results[0] = fread(&(hinfo.version),
sizeof(hinfo.version), 1, f);
80 results[1] = fread(&(hinfo.objsize),
sizeof(hinfo.objsize), 1, f);
81 results[2] = fread(&(hinfo.format),
sizeof(hinfo.format), 1, f);
83 results[3] = fread(&(hinfo.m),
sizeof(hinfo.m), 1, f);
84 results[4] = fread(&(hinfo.n),
sizeof(hinfo.n), 1, f);
85 results[5] = fread(&(hinfo.nnz),
sizeof(hinfo.nnz), 1, f);
86 if(accumulate(results,results+6,0) != 6)
88 cout <<
"The required 6 fields (version, objsize, format, m,n,nnz) are not read" << endl;
89 cout <<
"Only " << accumulate(results,results+6,0) <<
" fields are read" << endl;
94 cout <<
"Version " << hinfo.version <<
", object size " << hinfo.objsize << endl;
95 cout <<
"Rows " << hinfo.m <<
", columns " << hinfo.m <<
", nonzeros " << hinfo.nnz << endl;
99 seeklength = 4 + 6 *
sizeof(uint64_t);