2012-02-25 9 views
0

-fを使用すると、エラーセグメンテーションフォルトが発生します。 -fオプションは、入力ファイルを選択するためのオプションです。あなたの質問に答えるのは難しいですどのように定義されるかlist_names_append_from_file知らずCプログラミング - getopt

struct list_names filenames; 
    list_names_init(&filenames, "filenames"); 

    optind = 1; 
    while ((ch = getopt(argc, argv, ":hvf:")) != -1) //where getopt defined 
    { 
     switch (ch) { 
     case 'h': 
       printf("usage: ./hake [-h] [-v] [-f file]\n-h   print help\n-v   verbose mode; enable extra printing; can be repeated\n"); 
       printf("-f file  input filename; default is hakefile or Hakefile"); 
      break; 
     case 'v': 
      verbose = 1; 
      break; 
     case 'f': 
      f_flag++; 
      list_names_append_from_file(&filenames, optarg); 
     printf("Read_file%s\n",optarg); 
     read_file(optarg); 
      break; 
+0

あなたの 'list_names_append_from_file'メソッドに問題がないと思われます。 – Kevin

答えて

3

。しかし、セグメンテーションフォールトとは、間違った型や数のパラメータを関数に渡したり、ポインタをつぶしたりすることをほぼ間違いなく確実に意味しています。私は再コンパイルすることをお勧めします(gccを使用していると仮定して)-Wall -Werrorを実行し、コンパイラが何が間違っているかを教えてくれないかどうかを確認します。

+0

私のコードを見て、あなたの権利私は間違った数のパラメータを関数に渡しています。私はリストに同時に2つのファイルを渡す方法に立ち往生しています、それを行うことは可能ですか? – 1990Mustafa