나는 약 flock을 읽고 있었다. 이 예가 다음과 같습니다.
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
이 호출은 차단 호출입니다. 따라서 잠금 장치가 이미 해제되어 있으면 호출 차단됩니다.
호출이 반환되면 잠금이 부여된다고 가정합니다. 언제 die
이 발생합니까?flock에 대한 블로킹 호출이 언제 실패합니까?
3
A
답변
6
flock
은 같은 이름의 시스템 호출을위한 래퍼입니다. $!
은 시스템에 의해 설정됩니다. 따라서 시스템 설명서의 답변을 참조하십시오.
EBADF
man 2 flock
에 따라 내 시스템에서, :
fd
가 열려진 파일 기술자가 아니다.EINTR
: 잠금을 획득하기 위해 대기하는 동안 처리기가 포착 한 신호가 전달되어 통화가 중단되었습니다. 신호 (7) 참조.EINVAL
:operation
은 유효하지 않습니다.ENOLCK
: 커널에서 잠금 레코드를 할당하기 위해 메모리가 부족합니다.EWOULDBLOCK
: 파일이 잠겨 있고LOCK_NB
플래그가 선택되었습니다.