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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C][?] Problema apertura de archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C][?] Problema apertura de archivos  (Leído 2,610 veces)
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
[C][?] Problema apertura de archivos
« en: 28 Febrero 2011, 23:30 pm »

Buenas gente.

Estoy haciendo un "editor hexadecimal" bastante basico, el caso es que quiero que habra cualquier archivo del disco duro, y para ello tengo este fragmento de codigo
Código
  1. void Initialize_File()
  2. {
  3. File.file = fopen(File.path,"rb");
  4.  
  5. if(File.file != NULL)
  6. {
  7. printf("se pudo abrir el archivo\n");
  8. }
  9. else if(File.file == NULL)
  10. {
  11. printf("No se pudo\n");
  12. }
  13. system("PAUSE");
  14. }

(los system("PAUSE") son para ir haciendo pruebas)

File.path es la direccion del archivo, (que ingrese previamente), este metodo ya lo utilice mas veces y me funcionaba, sin embargo hoy no me abre los archivos, dejo tambien el codigo que obtiene la ruta.
Código
  1. void GetPath()
  2. {
  3. char path[64];
  4. File.path_len = 0;
  5. int i = 0;
  6. printf("Introduce la ruta\n");
  7. gets(path);
  8. while(path[i] != '\0')
  9. {
  10. File.path_len++;
  11. i++;
  12. }
  13. File.path = (char*) malloc(File.path_len * sizeof(char));
  14. File.path = path;
  15. printf("La cadena es %s y mide %d caracteres",File.path,File.path_len);
  16. system("PAUSE");
  17. }

Tambien pongo la estructura desde en la que se guardarian todos los datos
Código
  1. struct disas_file{
  2. char *path;
  3. int path_len;
  4. int size;
  5. FILE *file;
  6. char *data;
  7. };


Gracias de antemano!


En línea

ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: [C][?] Problema apertura de archivos
« Respuesta #1 en: 1 Marzo 2011, 00:04 am »

Creo que esta línea
Código
  1. File.path = (char*) malloc (File.path_len * sizeof(char));
  2.  

debería estar escrita asi
Código
  1. File.path = (char*) malloc ((File.path_len +1) * sizeof(char));
  2.  

Y también faltaría copiar la cadena al espacio de memoria reservado..

Osea que esto
Código
  1. File.path = path;
  2.  

esta mal. Deberias utlizar strcpy ..

Saludos


En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: [C][?] Problema apertura de archivos
« Respuesta #2 en: 1 Marzo 2011, 00:23 am »

Muchas gracias, errores tontos los mios  :xD

Funcionó!
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: [C][?] Problema apertura de archivos
« Respuesta #3 en: 1 Marzo 2011, 12:39 pm »

Aún no debería...

Deberías usar strncpy
Deberías usar fgets  antes que gets. Es peligroso. Pásame todo el código fuente y me saco de la manga uno o dos BoF...
Y a ver cómo defines File.file, se define como [FILE *file]. No sé cómo lo has puesto, a lo mejor así te sigue dando fallos...
Y en lo del path_len hay una función llamada strlen que hace lo mismo pero mejor que como tú lo estás haciendo...
Más que se resta uno, no se suma...

Un saludo!
Sagrini
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Apertura Archivos JPG
Programación C/C++
W0lFy 0 1,994 Último mensaje 19 Mayo 2010, 07:56 am
por W0lFy
Problema en apertura de archivos en Borland C++
Programación C/C++
Enagymo 3 4,169 Último mensaje 1 Agosto 2010, 03:42 am
por MIG80
Ayuda los modos de apertura de archivos en C.
Programación C/C++
theluigy13etv 6 6,718 Último mensaje 23 Diciembre 2011, 16:28 pm
por Sagrini
Problema con apertura en batch
Scripting
xpaRtanus 2 3,487 Último mensaje 11 Abril 2013, 17:05 pm
por xpaRtanus
Google Chrome soluciona un problema que demoraba la apertura de archivos ZIP ...
Noticias
wolfbcn 0 1,234 Último mensaje 21 Marzo 2019, 15:00 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines