En cuanto a grabar la estructura en el disco podes usar usar cadenas de tamaño predefinido y así no tendrías más que hacer un write/read con el tamaño de la estructura:
Código:
struct registre
{
char usuari[256];
char control;
};
registre reg;
read(file, ®, sizeof(registre)); << lee desde un archivo una estructura registre, 257 bytes
reg.control = 'N';
write(file, ®, sizeof(registre)); << escribe a un archivo una estructura registre
Sino también podes escribir en el archivo el tamaño de la cadena.