2013-03-06 84 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