Cita de: Eternal Idol en 8 Junio 2014, 14:36 PM
escribir la misma cantidad de bytes leidos que retorna read
En el clavo. El strlen devuelve el tamaño del buffer hasta el primer byte nulo (que es como termina una string), pero en este caso no estoy analizando cadenas, sino bytes individuales donde probablemente haya bytes nulos muy freqüentemente, por lo que la cantidad de bytes que escribia en cada iteración podia llegar a ser hasta 0 en el peor caso, de manera que perdia una gran cantidad de información. Así que realizando unos pequeños cambios en el bucle while he conseguido que me funcione perfectamente.
Adjunto el código del bucle tal como quedaría:
Código (c) [Seleccionar]
int size;
while((size = read(src_fc, buffer, 512)) > 0)
{
if(write(obj_fd, buffer, size) < 0)
{
strcpy (buffer, "Error in write.\n");
write (1, buffer, strlen (buffer));
exit(1);
}
}
¡Gracias por la ayuda!
Un saludo.