0
사용자로부터 루트 디렉토리와 최소 파일 크기를 취하여 모든 하위 디렉토리에 입력 한 크기보다 큰 모든 파일을 계산하는 프로그램을 작성해야합니다.재귀 적 계산
내 재귀는 현재 작업 디렉토리에 있고 하위 디렉토리에있는 파일 수만 계산합니다. 이 문제를 해결하는 방법에 대한 단서가 있습니까? 그것은 올바르게 작업 디렉토리에있는 파일의 수를 세고 있습니다.
사용자로부터 루트 디렉토리와 최소 파일 크기를 취하여 모든 하위 디렉토리에 입력 한 크기보다 큰 모든 파일을 계산하는 프로그램을 작성해야합니다.재귀 적 계산
내 재귀는 현재 작업 디렉토리에 있고 하위 디렉토리에있는 파일 수만 계산합니다. 이 문제를 해결하는 방법에 대한 단서가 있습니까? 그것은 올바르게 작업 디렉토리에있는 파일의 수를 세고 있습니다.
함수를 재귀 적으로 호출 할 때 경로를 올바르게 지정해야합니다. dentry->d_name
은 파일 이름 만 나타냅니다. 그것이 속한 디렉토리 이름을 포함하지 않습니다.
그렇지 않으면 존재하지 않는 디렉토리로 재귀하려고 시도합니다. (또는 부모 디렉토리와 이름이 같은 디렉토리가있는 경우 동일한 디렉토리로 무한대로 재귀하려고 시도합니다.
char path[PATH_MAX];
....
snprintf(path, sizeof path, "%s/%s", fileName, dentry->d_name);
countFiles(path, count, size);
hilarity의 경우, contabiling 디렉토리에 대한 심볼릭 링크를 (하위) 디렉토리 중 하나에 넣습니다. – Deduplicator