2010-04-25 2 views
1

디렉토리를 열고 파일 객체와 dentry 구조체를 가져 오는 시스템 호출을 작성했습니다. list_for_each() 매크로를 사용하여 하위 디렉토리의 항목을 포함하여 모든 항목을 나열하려고합니다. 문제는 현재 dentry 캐시에있는 내용 만 표시하는 것입니다. nautilus로 디렉토리를 연 다음 시스템 호출을 다시 실행하면 모든 항목이 나열됩니다. 정확한 항목 목록을 확인하거나 캐시를 새로 고치는 방법이 있습니까?리눅스 커널 - VFS 덴 트리 캐시 새로 고침

f = s_open(tpath); 

fle = fget(f); 
d = fle->f_path.dentry; 
list_for_each (dentry) { 
    ... 
} 
sys_close(f); 
+0

사용자 공간에서이 작업을 수행하지 않는 특별한 이유가 있습니까? –

답변

3

왜 시스템 호출을 사용하여 디렉토리의 내용을 읽으십니까? 당신이 정말로 유저 랜드에 있어야하고, 그러면 opendir과 같은 것을 사용해야한다는 것 같습니다.