[질문] sub directory 나 파일이 존재하는 디렉토리 삭제방법은?

kimyh의 이미지

디렉토리내에 서브 디렉토리가 있거나 또는 파일이 있을경우에 모두 삭제할수 잇는 함수는 뭔가요?
remove() 함수나 rmdir() 함수의 경우엔 디렉토리안에 파일이나 서브 디렉토리가 있으면
삭제가 않되던데요.

lacovnk의 이미지

잘 모르겠습니다만.. rm -r을 어떻게 구현했는지 살펴보면 어떨까요?

prether의 이미지

머 아래와 같이 C function을 만들면...

(정확한 code라기 보다 control flow에 대한 comment만 적으면)

int recursive_rm(char *path)
{

//1. scandir()로 해당 path에 있는 엔트리와 그 개수를 구한다.

//2. 엔트릴 쭉 훑는다(도트와 더블 도트는 skip하고) 해당 엔트리 status를 stat()로 구해서

//3. 엔트리가 directory이면 지금 함수를 재귀적으로 호출하고

//4. 엔트리를 unlink()로 지운다.

//5. free()로 엔트리 정보 메모리 객체를 반납

}

/***************************************
Being the one is just like being in love.
***************************************/