Doble post para indicar que ya he encontrado la solución.
Para los interesados, bastaba con utilizar lseek
Código HTML:
http://linux.about.com/library/cmd/blcmdl2_lseek.htm
AL final el código me quedo asi
Código:
ch[tamlectura] = 0;
strcpy (strn, nomusers[fd[i]]);
strcat (strn, " : ");
strcpy (ch2, nomusers[fd[i]]);
strcat (ch2, " @@ ");
strcat (ch2, ch);
strcat (ch2, "\n");
strcpy (nomfile, "test");
disco = open (nomfile, O_WRONLY);
lseek (disco, 0, SEEK_END);
write (disco, &ch2, tamlectura + tamnom1 + 3);
close (disco);
Un saludo a todos