PHP flock() 함수
정의와 사용법
flock() 함수는 파일을 잠금 또는 해제합니다.
성공하면 true를 반환합니다. 실패하면 false를 반환합니다.
문법
flock(file,잠금,block)
파라미터 | 설명 |
---|---|
file | 필수입니다. 잠금 또는 해제할 열린 파일을 정의합니다. |
잠금 | 필수입니다. 사용할 잠금 유형을 정의합니다. |
block | 선택 가능합니다. 1 또는 true로 설정되면, 잠금을 수행할 때 다른 프로세스를 차단합니다. |
설명
flock() 작업의 file 이미 열려 있는 파일 포인터여야 합니다.
잠금 파라미터는 다음 가운데 하나입니다:
- 공유 잠금(읽기 프로그램)을 얻으려면 잠금 LOCK_SH(PHP 4.0.1 이전 버전에서 1로 설정)
- 독점 잠금(쓰기 프로그램)을 얻으려면 잠금 LOCK_EX(PHP 4.0.1 이전 버전에서 2로 설정)
- 잠금을 해제하려면(공유 또는 독점 모두 가능) 잠금 LOCK_UN(PHP 4.0.1 이전 버전에서 3으로 설정)
- flock()가 잠금 중에 블록되지 않기를 원하지 않으면 잠금 LOCK_NB(PHP 4.0.1 이전 버전에서 4로 설정)
추천 및 주석
추천:다음과 같은 방법으로 fclose() 잠금 작업을 해제하려면, 코드 실행이 완료되면 자동으로 호출됩니다.
주석:flock()는 파일 포인터가 필요하기 때문에, 쓰기 모드로 열려 있는 파일에 대한 접근을 보호하기 위해 특별한 잠금 파일을 사용하지 않을 수 없을 수 있습니다. (fopen() 함수에 "w" 또는 "w+"를 추가).
예제
<?php $file = fopen("test.txt","w+"); // exclusive locking if (flock($file,LOCK_EX)) { fwrite($file,"Write something"); // release lock flock($file,LOCK_UN); } else { echo "Error locking file!"; } fclose($file); ?>