2010-11-13 19 views
0

J'ai une erreur de segmentation dans un endroit étrange dans mon code. C'est dans la dernière instruction if. Quelqu'un a une idée pourquoi je reçois segfault?Segfault avec stderr

void processArgument(char argument[]){ 
    FILE *sketcher; 
    FILE *fp; 
    fp = fopen (argument, "r"); 
    sketcher = popen(Exec_c, "w"); 
if (fp == NULL){ 
     printf ("Could not open pipe to %s\n", argument); 
    exit (EXIT_FAILURE); 
} 
    if (sketcher == NULL){ 
     printf ("Could not open pipe to %s\n", argument); 
    exit (EXIT_FAILURE); 
    }else{ 
     parseFile(fp, sketcher); 
     if(fclose(fp)==EOF){ 
    printf("couldn't close pipe to %s.\n", argument); 
    exit(EXIT_FAILURE); 
    } 
     if (pclose(sketcher) == -1){             //if (pclose(sketcher) == -1){ 
      fprintf(stderr, "draw_line error: couldn't close pipe to %s.\n", Exec_c);//fprintf(stderr,"",E); 
      exit(EXIT_FAILURE);  
     } 
    } 
} 

Répondre

3

La possibilité la plus simple serait que Exec_c ne soit pas une chaîne valide.