Foros del Web » Programación para mayores de 30 ;) » C/C++ »

cargar una imagen jpg

Estas en el tema de cargar una imagen jpg en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/11/2011, 04:17
 
Fecha de Ingreso: enero-2009
Mensajes: 29
Antigüedad: 15 años, 10 meses
Puntos: 0
cargar una imagen jpg

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 original
  1. char *tratamiento_fichero (char *buffer, int total_recibidos)
  2. {
  3.   int i;
  4.   char *copia,*copia2;
  5.   ifstream f_entrada;
  6.   cout << "->\tMensaje HTTP de petición:\n"<<buffer << endl;
  7.   copia  = buffer + 5;
  8.   copia = strtok(copia, " ");
  9.  
  10.   f_entrada.open (copia,ios::binary);
  11.   copia2 = strstr(copia, "HTTP");     //busca la subcadena HTTP dentro de la cadena copia
  12.  
  13.   if (copia2 != NULL) *copia2 = '\0';
  14.   if (DEBUG) cout << "->\tArchivo: " << copia << endl;
  15.   //Recuperación del archivo.
  16.  
  17.   if (f_entrada.fail())
  18.     {
  19.       f_entrada.clear();
  20.       return metodos(404);
  21.     }
  22.   f_entrada.seekg(0,ios::end);
  23.   int tamanho =f_entrada.tellg();
  24.   f_entrada.seekg(0,ios::beg);
  25.   char *caracter = new char (tamanho);
  26.  
  27.   while (!f_entrada.eof())
  28.     f_entrada.read(caracter, tamanho);
  29.   f_entrada.close();
  30.    
  31.   caracter [tamanho]= '\0';
  32.   return caracter;//buffer_retenido;
  33. }

Etiquetas: jpg
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.