HDsnprintf(err_msg, sizeof(err_msg), "Family member size should be %lu.  But the size from file access property is %lu", (unsigned long)msize, (unsigned long)file->pmem_size);
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group.                                               *
 * Copyright by the Board of Trustees of the University of Illinois.         *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of HDF5.  The full HDF5 copyright notice, including     *
 * terms governing use, modification, and redistribution, is contained in    *
 * the files COPYING and Copyright.html.  COPYING can be found at the root   *
 * of the source code distribution tree; Copyright.html can be found at the  *
 * root level of an installed copy of the electronic HDF5 document set and   *
 * is linked from the top-level documents page.  It can also be found at     *
 * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
 * access to either file, you may request a copy from help@hdfgroup.org.     *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Programmer:  Robb Matzke <matzke@llnl.gov>
 *      Monday, November 10, 1997
 *
 * Purpose: Implements a family of files that acts as a single hdf5
 *      file.  The purpose is to be able to split a huge file on a
 *      64-bit platform, transfer all the <2GB members to a 32-bit
 *      platform, and then access the entire huge file on the 32-bit
 *      platform.
 *
 *      All family members are logically the same size although their
 *      physical sizes may vary.  The logical member size is
 *      determined by looking at the physical size of the first member
 *      when the file is opened.  When creating a file family, the
 *      first member is created with a predefined physical size
 *      (actually, this happens when the file family is flushed, and
 *      can be quite time consuming on file systems that don't
 *      implement holes, like nfs).
 *
 */
/* Interface initialization */
#define H5_INTERFACE_INIT_FUNC  H5FD_family_init_interface
#include "H5private.h"      /* Generic Functions            */
#include "H5Eprivate.h"     /* Error handling           */
#include "H5Fprivate.h"     /* File access              */
#include "H5FDprivate.h"    /* File drivers             */
#include "H5FDfamily.h"         /* Family file driver           */
#include "H5Iprivate.h"     /* IDs                  */
#include "H5MMprivate.h"    /* Memory management            */
#include "H5Pprivate.h"     /* Property lists           */
#undef MAX
#define MAX(X,Y)    ((X)>(Y)?(X):(Y))