について質問がありfts(3)
ます。関数のメンバーにアクセスしようとすると、セグメンテーション違反が発生しfts_children()
ます。http://www.kernel.org/doc/man-pages/online/pages/man3/fts.3.htmlのmanページを読むと、read関数が実行された後に自分自身がいっぱいになると主張し、リンクされたリンクリストを返します。link
構造内のフィールドを介して。私の疑いは、child_functionが何も返さないということですが、それがmanページと一致していないように感じます。自動的に行われていると思ったので、これらのファイルを子バッファーに追加することになっていますか?私のコードは下にあります、ありがとう!
#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