Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/04/2014, 18:48
Avatar de Drewermerc
Drewermerc
 
Fecha de Ingreso: febrero-2014
Mensajes: 185
Antigüedad: 10 años, 2 meses
Puntos: 5
Respuesta: Alojar archivo a memoria

hola jhonny6721.
bueno mira yo no programo mucho en c++ pero lo unico que hise fue pasar la bariable buffer como global y creo otra simplemente le asigne el balor de buffer y se imprimio correctamente y pues se volvio a imprimir el valor del archivo nose si es esto lo que queria pruebalo.
Código C++:
Ver original
  1. #include <iostream>
  2.     #include <fstream>
  3.     #include <stdio.h>
  4.      
  5.      
  6.     using namespace std;
  7.     char *buffer, *dos;
  8.     int load_file_in_memory(char *buffer, char path[]);
  9.      
  10.     int main(){
  11.        
  12.         char path[] = "C:\\codigo.txt";
  13.      
  14.         load_file_in_memory(buffer, path);
  15.      
  16.         cout << "Accediendo al puntero desde fuera de la funcion: " << endl;
  17.         cout << dos << endl;
  18.     }
  19.      
  20.     int load_file_in_memory(char *buffer, char path[]){
  21.     /*************************************************************
  22.         CARGA ARCHIVO EN MEMORIA.
  23.     *************************************************************/
  24.      
  25.      
  26.         unsigned int size_of_file;
  27.      
  28.         std::ifstream file;
  29.         file.open(path, ios::binary);
  30.      
  31.         ///Siempre verifica que el archivo haya abierto correctamente
  32.         if(file.bad()){
  33.             cout << "Lo siento. Fallo el archivo!!" << endl;
  34.             return -1;
  35.         }
  36.      
  37.         ///Se posiciona en el ultimo byte para obtener tamaño.
  38.         file.seekg(0, ios::end); ///Se va a la úlitma posicion
  39.         size_of_file = file.tellg(); ///Obtiene cual es dicha posicion, es decir la longitud de archivo
  40.         file.seekg(0, ios::beg); ///Va al principio el puntero.
  41.      
  42.      
  43.         buffer = new char[size_of_file];
  44.      
  45.         file.read(buffer, size_of_file);
  46.         dos = buffer;
  47.         file.close();
  48.      
  49.         cout << "Mirando el contenido del puntero dentro de la funcion" << endl;
  50.         cout << buffer << endl;
  51.      
  52.      
  53.     /*************************************************************
  54.         FIN DE CARGA EN MEMORIA
  55.     **************************************************************/
  56.      
  57.      
  58.     }

bueno amigo espero haber ayudado.
saludo drewermerc.