열린 파일 설명자에 대한 파일 이름 만들기

열린 파일 설명자에 대한 파일 이름 만들기

파일 시스템에 파일이 있습니다. open(2)파일의 파일 설명자를 가져오는 함수를 사용하여 파일을 열고 있습니다 .

이제 파일을 삭제하겠습니다. 하지만 여전히 파일 설명자가 있으므로 마지막 파일 설명자가 닫힐 때까지 파일 시스템이 내 파일에 대한 파일 할당을 삭제하지 않기 때문에 문제 없이 파일을 읽고 쓸 수 있습니다.

그러나 파일을 삭제한 후에도 파일 설명자가 남아 있는 동안 해당 파일 설명자에 파일 이름을 다시 생성(재바인딩)할 수 있습니까? 그러면 파일이 파일 시스템에 다시 나타나서 파일 설명자를 닫아도 삭제되지 않는다는 건가요? (내가 가진 것은 열린 파일 설명자뿐이고 다른 것은 없습니다).

linkat저는 이것이 macOS에서 수행될 수 있는지에 가장 관심이 있습니다( 이 플래그를 사용하면 Linux/glibc에서 가능한 것 같습니다 AT_EMPTY_PATH).

답변1

당신이 언급했듯이,linkat리눅스에서이를 수행하기 위해 사용하는 것은 허용되지만 AT_EMPTY_PATH권한이 있는 프로세스에 의해서만 가능합니다. (맨페이지와 현재 구현 사이에는 약간의 차이가 있습니다.flink" "의 커밋을 소개합니다.그리고복원하려면 제출하세요.세부. )은 를 통해서도 수행할 수 있습니다 /proc.

이것macOS 버전linkat이는 지원되지 않으며 이를 달성할 수 있는 다른 방법은 없습니다.

관련 정보