2013-03-06 61 views
1

我有,我已經發現了一個錯誤歸結爲:分段故障時使用FTS fts_open()

#include <sys/types.h> 
#include <sys/stat.h> 
#include <fts.h> 
#include <stdlib.h> 

int main() { 
    char *LOG_ROOT = "/var/log"; 

    FTS *ftsp; 
    FTSENT *p, *chp; 
    int fts_options = FTS_COMFOLLOW | FTS_LOGICAL | FTS_NOCHDIR; 

    char *paths[] = { LOG_ROOT }; 
    fts_open(paths, fts_options, NULL); 
} 

爲什麼這個段錯誤?

+0

添加了與這個相關的「數組」標籤。 – OregonTrail 2013-03-06 05:02:45

回答

2

第一個arg。預計將是一個NULL終止數組字符指針。

char *paths[] = { LOG_ROOT, NULL}; 
+0

你是我現在的絕對英雄。我一直在盯着1000個代碼行2個小時試圖找到問題。註釋掉隨機線路可以解決問題,因爲它們會將該位置留空。 – OregonTrail 2013-03-06 04:55:31