2012-02-25 62 views
0

當我使用-f得到錯誤分段錯誤時,有什麼想法? -f選項用於選擇輸入文件。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 2012-02-25 03:30:24

回答

3

不知道list_names_append_from_file是如何定義的,它很難回答你的問題。但是,分段錯誤意味着您幾乎可以肯定地將錯誤的類型或數量的參數傳遞給函數,或者您正在搞亂指針。我建議用-Wall -Werror重新編譯(假定你正在使用gcc),看看編譯器是不是立即告訴你什麼問題。

+0

看着我的代碼,你的權利,我傳遞錯誤的參數數量的函數。我被困在如何同時傳遞兩個文件到列表中,是否有可能這樣做? – 1990Mustafa 2012-02-25 16:22:23