Hola a todos!
Os cuento mi problema a ver si alguien me puede echar una mano.
Tengo que hacer un servidor http simple que pueda enviar tanto archivos como imágenes. El tema es que implementé una función para gestionar la apertura de los ficheros que me da un error de segmentación cuando intento abrir un archivo imagen .jpg
La cuestión es, ¿hay que usar una función diferente para los archivos imagen y para los de texto plano?
Os dejo el código por si sirve de algo.
El fallo lo da entre las línea 27 y 29.
Gracias por adelantado.
Código c++:
Ver originalchar *tratamiento_fichero (char *buffer, int total_recibidos)
{
int i;
char *copia,*copia2;
ifstream f_entrada;
cout << "->\tMensaje HTTP de petición:\n"<<buffer << endl;
copia = buffer + 5;
f_entrada.open (copia,ios::binary);
copia2
= strstr(copia
, "HTTP"); //busca la subcadena HTTP dentro de la cadena copia
if (copia2 != NULL) *copia2 = '\0';
if (DEBUG) cout << "->\tArchivo: " << copia << endl;
//Recuperación del archivo.
if (f_entrada.fail())
{
f_entrada.clear();
return metodos(404);
}
f_entrada.seekg(0,ios::end);
int tamanho =f_entrada.tellg();
f_entrada.seekg(0,ios::beg);
char *caracter = new char (tamanho);
while (!f_entrada.eof())
f_entrada.read(caracter, tamanho);
f_entrada.close();
caracter [tamanho]= '\0';
return caracter;//buffer_retenido;
}