elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  tipo de variable para tratar ficheros grandes
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: tipo de variable para tratar ficheros grandes  (Leído 2,603 veces)
Jano4

Desconectado Desconectado

Mensajes: 5


Ver Perfil
tipo de variable para tratar ficheros grandes
« en: 19 Enero 2015, 17:09 pm »

Hola a todos, soy nuevo por aquí,

quiero hacer una función que abra un archivo en modo binario y lo devuelva en algún tipo de variable para poder tratarlo byte a byte o con bloques del tamaño que yo quiera (para poder cifrarlo luego, pero ese es otro tema), y el caso es que después de
Código:
?? funcion(char* ruta)
{
FILE fp=fopen(ruta,"rb");
}
no que tipo de variable es la más adecuada para poder usar así los datos del fichero para que la devuelva la función, ni si hace falta algo más que asignar memoria para tratar con esa variable que contenga toda la información.
me vale cualquier orientación, consejo o documentación,

gracias!


En línea

kr.chacacreker

Desconectado Desconectado

Mensajes: 19



Ver Perfil
Re: tipo de variable para tratar ficheros grandes
« Respuesta #1 en: 19 Enero 2015, 19:32 pm »

Seria "leer ficheros en c" o algo asi para buscar en google.  :rolleyes: :silbar: : :-X


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: tipo de variable para tratar ficheros grandes
« Respuesta #2 en: 19 Enero 2015, 19:44 pm »

FILE es una opción. Si estás seguro de querer volcar todo el contenido en una variable, lo mejor sería en un char* o unsigned char.

Ya que es un fichero binario, tendrías que guardar en algún lugar el tamaño del buffer, y eso lo puedes hacer con un unsigned int:

Código
  1. typedef struct{
  2.    unsigned int size;
  3.    char* buffer;
  4. } Data;

En línea

Jano4

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: tipo de variable para tratar ficheros grandes
« Respuesta #3 en: 19 Enero 2015, 23:36 pm »

FILE es una opción. Si estás seguro de querer volcar todo el contenido en una variable, lo mejor sería en un char* o unsigned char.

Ya que es un fichero binario, tendrías que guardar en algún lugar el tamaño del buffer, y eso lo puedes hacer con un unsigned int:

Código
  1. typedef struct{
  2.    unsigned int size;
  3.    char* buffer;
  4. } Data;


muchas gracias por contestar tan rápido :D
otra pregunta, de estos dos struct cual crees que es más conveniente para usar en el programa, por eficiencia o lo que sea?
Código:
    typedef struct{
       unsigned int size;
       char* buffer;
    } Data;

    typedef struct{
       char* buffer;
       char* next_pointer; //puntero al siguiente char
    } Data;
es decir, todo en el mismo bloque de memoria o no es necesario?

gracias de antemano
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: tipo de variable para tratar ficheros grandes
« Respuesta #4 en: 20 Enero 2015, 00:07 am »

Hombre, la segunda opción puede ser mejor en archivos muy grandes, pero también será más engorrosa para tratar los datos. Tú verás lo que te sirve mejor.
En línea

Jano4

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: tipo de variable para tratar ficheros grandes
« Respuesta #5 en: 20 Enero 2015, 22:08 pm »

ok, muchas gracias por las respuestas!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines