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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como obviar archivo leido si no existe en C linux
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como obviar archivo leido si no existe en C linux  (Leído 1,169 veces)
RicGeo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Como obviar archivo leido si no existe en C linux
« en: 16 Junio 2014, 23:05 pm »

Hola amigos del ElHacker quisiera que me ayuden con un problema que tengo a la hora de compilar este pequeño programa en C.
Este pequeño programa guarda los numeros que se encuentran dentro de ciertos archivos, hasta ahi todo bien.. el problema empieza cuando quiero condicionar el programa para cuando no exita el archivo del cual quiero tomar sus numeros ... mando a compliar pero en el terminal aparece "Abortado (`core' generado)" y otros codigos sin sentido alguno.
Que me faltaría agregar para que el programa siga ejecutandose cuando no encuentre un archivo?
Código
  1. #include<stdio.h>
  2. int main(){
  3. int i,j,k;
  4. double coord1[31][3],coord2[31][3],coord3[31][3];
  5.   FILE *erp1,*erp2,*erp3;
  6. ///////////////////////////////////////////////////
  7.        erp1=fopen("/home/PROGAMACION/prueba_gg/am01","r");
  8.         if (!erp1)
  9.           //Que puedo poner aca?//
  10.         else{
  11.            erp1=fopen("/home/PROGAMACION/prueba_gg/am01","r");  
  12.            for (i=0,j=0,k=0;i<7,j<7,k<7;i++,j++,k++){
  13.                fscanf(erp1,"%lf\n",&coord1[i][0]);
  14.                fscanf(erp1,"%lf\n",&coord1[j][1]);
  15.                fscanf(erp1,"%lf\n",&coord1[k][2]);
  16.                printf("%lf - %lf - %lf\n",coord1[i][0],coord1[j][1],coord1[k][2]);
  17.                }
  18.             }
  19.        fclose(erp1);
  20. //////////////////////////////////////////////////
  21.       printf("###########################\n");
  22.        erp2=fopen("/home/PROGAMACION/prueba_gg/am02","r");
  23.         if (!erp2)
  24.           //Que puedo poner aca?//
  25.         else{  
  26.            erp2=fopen("/home/PROGAMACION/prueba_gg/am02","r");
  27.            for (i=0,j=0,k=0;i<7,j<7,k<7;i++,j++,k++){
  28.                fscanf(erp2,"%lf\n",&coord2[i][0]);
  29.                fscanf(erp2,"%lf\n",&coord2[j][1]);
  30.                fscanf(erp2,"%lf\n",&coord2[k][2]);
  31.                printf("%lf - %lf - %lf\n",coord2[i][0],coord2[j][1],coord2[k][2]);
  32.                }
  33.             }
  34.        fclose(erp2);
  35. //////////////////////////////////////////////////
  36.       printf("###########################\n");
  37.        erp3=fopen("/home/PROGAMACION/prueba_gg/an02","r");
  38.         if (!erp3)
  39.           //Que puedo poner aca?//
  40.         else{  
  41.            erp3=fopen("/home/PROGAMACION/prueba_gg/an2","r");
  42.            for (i=0,j=0,k=0;i<7,j<7,k<7;i++,j++,k++){
  43.                fscanf(erp3,"%lf\n",&coord3[i][0]);
  44.                fscanf(erp3,"%lf\n",&coord3[j][1]);
  45.                fscanf(erp3,"%lf\n",&coord3[k][2]);
  46.                printf("%lf - %lf - %lf\n",coord3[i][0],coord3[j][1],coord3[k][2]);
  47.                }
  48.             }
  49.        fclose(erp2);
  50. return 0;
  51. }
Agradezco su atencion!!


En línea

xiruko


Desconectado Desconectado

Mensajes: 437


Ver Perfil
Re: Como obviar archivo leido si no existe en C linux
« Respuesta #1 en: 17 Junio 2014, 00:00 am »

Qué debe hacer el programa cuando no encuentra algún archivo?

Así sin saberlo, yo solamente mandaría un mensaje de error por el stderr:

Código
  1. fprintf(stderr, "ERROR: No se encontro el archivo %s\n", archivo);

Por cierto, el fclose() deberías ponerlo dentro de cada else en lugar de fuera, ya que sino, en el caso de que no encuentre el archivo, el puntero que le pasas no es un puntero válido y puede generar problemas tal y como te está pasando a ti.

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como saber si existe un LINK, un archivo en internet « 1 2 »
Programación Visual Basic
jrhomer 11 3,683 Último mensaje 12 Enero 2006, 16:19 pm
por Thaorius
Marcar como leido
Sugerencias y dudas sobre el Foro
WSX 2 2,273 Último mensaje 23 Octubre 2009, 00:56 am
por WSX
Un programa que lea un archivo .txt y que guarde en variables lo leido « 1 2 »
Java
pedriques 10 26,186 Último mensaje 28 Mayo 2011, 23:20 pm
por klaine
[Python]Generar archivo cifrado solo leido para usuarios logeados
Scripting
MatiasHA 0 1,201 Último mensaje 11 Diciembre 2012, 09:21 am
por MatiasHA
¿Cómo puedo obviar esta notificación de SESSION?
PHP
Legnak 2 961 Último mensaje 24 Junio 2013, 22:01 pm
por Legnak
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines