我有一个问题fts(3)
。每当我尝试访问该fts_children()
函数的任何成员时,都会遇到分段错误。当我在http://www.kernel.org/doc/man-pages/online/pages/man3/fts.3.html阅读手册页时,它声称在读取函数运行后自行填充并返回链接的链接列表通过link
结构中的字段。我怀疑 child_function 什么也没返回,但我觉得这与手册页不符。我是否应该将这些文件添加到子缓冲区,因为我认为这是自动完成的?我的代码如下,谢谢!
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fts.h>
#include<string.h>
int compare (const FTSENT**, const FTSENT**);
int main(int argc, char* const argv[])
{
FTS* file_system = NULL;
FTSENT* child = NULL;
FTSENT* parent = NULL;
FTSENT* temp = NULL;
file_system = fts_open(argv + 1,FTS_COMFOLLOW | FTS_NOCHDIR,&compare);
while( (parent = fts_read(file_system)) != NULL)
{
child = fts_children(file_system,0);
printf("%s\n", child->fts_path);
}
// while (child ->fts_link != NULL)
// child = child->fts_link;
fts_close(file_system);
return 0;
}
int compare(const FTSENT** one, const FTSENT** two){
return (strcmp((*one)->fts_name, (*two)->fts_name));
}
"test_fs.c" 43L, 1108C