Hazte una estructura con el contenido del registro que quieras almacenar. Por ejemplo
struct persona
{
char nombre[10];
char apellido[10];
int edad;
}
El fichero lo abres normalmente con fopen(). Escribes en el normalmente con fwrite().
Para acceder a un registro concreto, usa la funcion fseek(). Esta funcion te situa dentro del fichero en una posicion concreta. Por ejemplo, si quieres acceder a la decima persona que hay en el fichero, pon
fseek (fichero, 10*sizeof(Persona), SEEK_SET);
Una vez situado ahi, puedes leer con fread() la decima persona o bien "machacarla" con datos nuevos con un fwrite().
Se bueno.