the first 9 bytes of the bphys file is the Header of the file. the first 8 are 'BPHYSICS' after which there is a unsigned int describing the type of data:

    0 softbody
    1 particles
    2 cloth
    3 smoke_domain
    4 smoke_highres
    5 dynamicpaint
    6 rigidbody	


the link you posted is in relation to Particles, so i will assume you are only looking at accessing the particle data.

after the header, each particle has the following data:

    index , 4
    location , 12 
    velocity , 12 
    rotation , 16 
    avelocity , 12
    size , 4
    times , 12
    boids , 20

however, the pointcache reader will only write/read boid data if the particle system has boids enabled. so if you're not using boids, you just dont read that data.

assuming there is no boid data you will want to read the following data:

    unsigned int, // BPHYS_DATA_INDEX
    3 * float, // BPHYS_DATA_LOCATION
    3 * float, // BPHYS_DATA_VELOCITY
    4 * float, // BPHYS_DATA_ROTATION
    3 * float, // BPHYS_DATA_AVELOCITY / BPHYS_DATA_XCONST
    float, // BPHYS_DATA_SIZE
    3 * float, // BPHYS_DATA_TIMES	

all this information can be found in 
[pointcache.c](https://developer.blender.org/diffusion/B/browse/master/source/blender/blenkernel/intern/pointcache.c) file in blender's code.