인프런 커뮤니티 질문&답변

zeroone님의 프로필 이미지
zeroone

작성한 질문수

리눅스 시스템 프로그래밍 - 이론과 실습

파일을 이용한 동기화 - 라이브 프로그래밍

파일 lock에 관해서

작성

·

325

2

./flock ex 혹은 ./flock sh 해서 lock을 걸어둔 상태에서 다른 터미널 창에서 cat lockfile하면 출력이 가능하던데  왜 가능한건지 모르겠습니다.

답변 2

1

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

fclock은 advisory lock 입니다. flock으로 파일을 exclusive locking 했다 하더라도 파일 시스템에서 locking 된 것이 아닙니다. advisory lock이라는 말은, 해당 파일 lock에 대해 flock()을 이용해 파일 접근 가능 여부를 확인하는 프로세스들 끼리만 동작이 된다는 말입니다. 일종의 약속인 것이죠.

그런데 cat 명령어는 fclock()으로 검사하기로 한 프로그램이 아니죠. 그렇기 때문에 flock()에 의해 잠겨있던 말든 파일에 접근이 가능합니다. rm으로 파일 삭제도 가능합니다. 

0

zeroone님의 프로필 이미지
zeroone
질문자

친절한 답변 감사합니다. 이해 잘 되었습니다.

zeroone님의 프로필 이미지
zeroone

작성한 질문수

질문하기