2013-03-06 3 views
1

У меня есть ошибка, что я нашел сводится к следующему:вина Сегментация STRLEN при использовании 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); 
} 

Почему это Segfault?

+0

Добавлен тег «массив», который слишком важен для этого. – OregonTrail

ответ

2

Первый аргумент. как ожидается, будет NULL оканчивающийся массив указателей на символы.

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

Ты мой абсолютный герой прямо сейчас. Я смотрел на 1000 строк кода в течение 2 часов, пытаясь найти проблему. Комментируя случайные строки, исправленная проблема, потому что они оставят это место NULL. – OregonTrail

Смежные вопросы