php
PHP - flock 함수
bool flock ( resource $handle , int $operation [, int &$wouldblock ] )
flock 함수는 파일을 쓰거나 읽을 때, 또는 파일 잠금 해제 등 유닉스나 윈도우에서 작동합니다. 파일 작성 중 다른 사용자의 사용의 접근을 차단하여 파일의 깨지는 문제를 예방할 수 있습니다.
flock 함수는 다음의 상수를 사용할 수 있습니다.
사용방법은 다음과 같습니다.
해당 파일에 접근하는 사용자수가 많다면 파일이 깨지는 경우가 발생하므로 반드시 파일 쓰기 작업일 때는 파일 잠금을 해두는 게 좋으며 파일 읽기일 때는 flock 기능 보다는 readfile 함수나 fpassthru 함수를 이용하는 편이 더 효율적일 것입니다.
flock 함수는 파일을 쓰거나 읽을 때, 또는 파일 잠금 해제 등 유닉스나 윈도우에서 작동합니다. 파일 작성 중 다른 사용자의 사용의 접근을 차단하여 파일의 깨지는 문제를 예방할 수 있습니다.
flock 함수는 다음의 상수를 사용할 수 있습니다.
상 수 | 설 명 |
---|---|
LOCK_SH | 파일 읽기일 때 잠금 |
LOCK_EX | 파일 쓰기일 때 잠금 |
LOCK_UN | 파일 잠금 해제 |
사용방법은 다음과 같습니다.
<?php
// 파일 새로 작성시
if($fp = @fopen('readme.txt', 'wb'))
{
// 파일을 먼저 잠금합니다.
@flock($fp, LOCK_EX);
fwrite($fp, "새로운 내용을 작성합니다.");
// 작업을 마쳤으면 파일 잠금 해제합니다.
@flock($fp, LOCK_UN;
fclose($fp);
}
// 파일에 내용 추가시
if($fp = @fopen('readme.txt', 'ab'))
{
// 파일을 먼저 잠금합니다.
@flock($fp, LOCK_SH);
fwrite($fp, "새로운 라인을 추가합니다.");
// 작업을 마쳤으면 파일 잠금 해제합니다.
@flock($fp, LOCK_UN;
fclose($fp);
}
?>
해당 파일에 접근하는 사용자수가 많다면 파일이 깨지는 경우가 발생하므로 반드시 파일 쓰기 작업일 때는 파일 잠금을 해두는 게 좋으며 파일 읽기일 때는 flock 기능 보다는 readfile 함수나 fpassthru 함수를 이용하는 편이 더 효율적일 것입니다.
0 댓글