unlink로 파일삭제 후, 바로 open 할 경우 처리에 대한 고민...
글쓴이: 불량청년 / 작성시간: 화, 2009/12/15 - 4:33오후
안녕하세요? 하나의 프로세스가 있습니다.
이녀석은 start command를 받으면 현재 지정된 디렉토리에 fix된 이름의 파일이 있는지 확인 후, 있으면 unlink로 파일 삭제 후,
바로 open으로 파일을 생성하여 그파일에 데이터를 다운로드 받습니다.
문제는 stop command를 받고 다시 start command를 받아 위에 처리되는 fix된 파일이 있으면 unlink로 삭제를 하고 바로 open을
하는데 open success는 되지만, 실제 물리적인 파일은 삭제가 되지 않고 그대로 남아 있어 disk space가 계속 늘어나는 현상이
발생하고 있습니다.
unlink가 ref count가 0이면 바로 삭제가 되는것으로 알고 있는데 위 상황에선 분명 0인데 물리적인 파일은 삭제가 되지 않고
있는것 같습니다. unlink는 i-node table의 link만 끊어버리고 혹시 나중에 process 종료 시, 처리가 되는것인지... 궁금하네요.
또한 이런경우 어떻게 처리를 해줘야 할지도 궁금합니다.
Forums:
이렇게 하면 어떨까요?
바로 unlink 하지 마시고,
일단 이름을 바꾸세요.
그다음 open으로 화일생성,
그다음 이름 바꾸신것 unlink 하시면 될것 같습니다.
가끔은 하늘을 보고 살자...
------------------------------------------------
가끔은 하늘을 보고 살자...
기존 파일을 지우지
기존 파일을 지우지 않고 truncation해서 크기를 0으로 만들고 재사용하는 방법은 어떠신가요?
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
다운로드가
다운로드가 성공한다는 보장이 없으니 임시 파일로 변경된 파일을 다운로드하고 작업이 성공하면
기존 파일을 지우고 임시 파일을 기존 파일명으로 변경하는 것이 맞지 않나... 싶습니다.
답변 주신 모든분들 감사합니다. ^^*
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
댓글 달기