int main(int argc, char* argv[]) { int ret = ERROR_FAILURE; if (argc < 2) { printf("please input as this format: <mesh type> <meshfile> [meshfiledump] \n"); return ERROR_FAILURE; } char *mtype = argv[1]; char *file_name = argv[2]; char *file_name_dump = NULL; if (argc > 2) file_name_dump = argv[3]; // load the mesh file Mesh mesh; MeshLoader *mloader = NULL; if (strcmp(mtype, "exII") == 0) mloader = new ExodusIIReader(); else if (strcmp(mtype, "h2d") == 0) mloader = new H2DReader(); else if (strcmp(mtype, "h2d-str") == 0) { // load the file into a string FILE *file = fopen(file_name , "rb"); error_if(file == NULL, "unable to open file '%s'", file_name); // obtain file size: fseek(file, 0, SEEK_END); long size = ftell(file); rewind(file); // allocate memory to contain the whole file: char *buffer = (char *) malloc (sizeof(char) * size); error_if(buffer == NULL, "memory error"); // copy the file into the buffer: size_t result = fread(buffer, 1, size, file); error_if(result != size, "reading error"); fclose(file); // H2DReader *hloader = new H2DReader(); hloader->load_str(buffer, &mesh); ret = dump_compare(mesh, file_name_dump); delete hloader; free(buffer); return ret; } else if (strcmp(mtype, "h2d-old") == 0) { H2DReader *hloader = new H2DReader(); hloader->load_old(file_name, &mesh); ret = dump_compare(mesh, file_name_dump); delete hloader; return ret; } else { error("unknown mesh loader type"); } if (mloader->load(file_name, &mesh)) { ret = dump_compare(mesh, file_name_dump); } else { error("failed"); ret = ERROR_FAILURE; } delete mloader; return ret; }