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);
?>