2011-12-30 2 views
1

먼저 파일을 닫지 않고 Linux의 파일을 링크 해제하는 것이 안전합니까? 그게 그렇게 중요한 건가?파일을 닫지 않고 파일의 링크를 해제해도 괜찮습니까?

+0

리눅스에서 파일을 닫지 않고도 파일을 삭제할 수 있기 때문에이 방법이 완벽하다고합시다. 예를 들어 발견 할 수없는 temps 파일을 만드는 데 사용됩니다. –

+1

* 운영 체제 *에 따라 다릅니다. Posix 시스템 (및 Linux)에서는 허용 될 수 있습니다 (그리고 실제로는 임시 파일을 가져 오는 것이 일반적입니다). Windows에서 허용되지 않는다고 들었는데 (열린 파일은 제거 할 수 없음) Windows에 대해서는 알지 못합니다. –

+0

Ruby는 파일을 한 번에 열고 열고 수정 한 다음 닫을 수있는 편리한 수단을 제공합니다. Ruby 코드에 매달린 파일 핸들이 있어야하는 경우는 거의 없습니다. – ranksrejoined

답변

4

리눅스에서 이것은 안전하며 흔히 발견 할 수없는 임시 파일을 만드는 데 사용됩니다.

파일을 열어 본 경우 파일을 읽고 쓸 수 있습니다. 파일을 삭제했는지 여부는 상관 없습니다. 파일은 닫히고 순서에 관계없이 삭제 될 때 실제로 사라집니다.

+0

하지만 Ruby는 실제로이 작업을 수행합니까, 아니면 삭제하기 전에 파일을 닫습니까? – nitro2k01

+0

@ nitro2k01 Ruby는 'unlink'할 때 파일을 닫지 않고'unlink' 시스템 호출 만합니다. –

+0

파일이 열려있는 동안'/ proc/$ PID/fd' 디렉토리를 살펴 본다면 여전히 발견 할 수 있다는 것을 알아야합니다. –

관련 문제