29 Dec 15:18
Violación de segmento según arquitectura
Jose Luis Segura Lucas <josel.segura <at> gmail.com>
2008-12-29 14:18:33 GMT
2008-12-29 14:18:33 GMT
Buenas a todos/as Aunque creo que esta lista no es la más apropiada, escribo aquí porque la lista de C++/C no funciona... Estoy haciendo un programa que descarga una imagen JPG a través de un socket y la guarda en un fichero en disco. El programa funciona perfectamente en x86, pero al compilarlo y ejecutarlo en un ARM (el Chumby más concretamente :P) da una violación de segmento bastante rarita... Como el Chumby no tiene GDB ni nada parecido me he puesto a depurar un poco a la "Pepe el guarro" metiendo printf por bastantes sitios, y cual es mi sorpresa al descubrir que quien provoca la violación de segmento es la llamada a fclose para cerrar el descriptor del fichero. Mi código hace algo parecido a esto: FILE *f = fopen(IMAGE, "wb"); // escribo la imagen fflush(f); fclose(f); Pues bien, si yo coloco un printf antes o después del "flush", se imprime correctamente, pero si lo coloco tras el fclose, falla estrepitosamente. He comprobado si el fichero se escribía complemente en disco, y es así: el fichero está en la ubicación indicada con el tamaño esperado y la imagen está completa, es decir, permite abrirla con cualquier programa que muestre/manipule JPG. ¿Alguien podría decirme como solucionar este extraño (para mi) suceso?
RSS Feed