Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2011, 03:54
garan
 
Fecha de Ingreso: enero-2009
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta [unix] Escribiendo al final de un fichero

Hola a todos

Hacia un tiempo que no me pasaba por aqui (desde que deje de usar c) pero ahora me ha surgido un pequeño trabajo en el cual necesito su ayuda.

Estoy realizando un programa que funcione como un chat y para ello estoy utilizando sockets. Bien, una de las mejoras propuestas es poder almacenar un log con la conversación y para ello he pensado usar un fichero que haga de log.

Como el código es muy largo, pondre la parte que no me funciona:

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);
                        write (disco, &ch2, tamlectura + tamnom1 + 3);
                        close (disco);
Como veis, estoy usando las funciones genericas de Unix usando descriptores de ficheros en lugar de usar las propias de C con los stream.

Esta parte del código realiza lo que se espera (escribir nombre + " : " + mensaje en el fichero) pero me aplasta el contenido anterior en lugar de escribirlo al final.

¿Alguna sugerencia para resolver este lio (aparte de usar stream)?

Un saludo