
SplFileObject::flock() 메서드는 파일을 잠금하여 다른 프로세스가 동시 접근을 차단하는 기능을 제공합니다. LOCK_EX 옵션은 파일을 잠금하여 다른 프로세스가 동시 접근을 차단하는 옵션입니다. LOCK_UN 옵션은 파일 잠금을 해제하는 옵션입니다.
LOCK_EX 옵션을 사용했을 때 다른 프로세스가 파일을 열려고 할 때 에러가 발생하는 이유는, LOCK_EX 옵션은 파일을 잠금하여 다른 프로세스가 동시 접근을 차단하기 때문에 다른 프로세스가 파일을 열려고 할 때 에러가 발생합니다.
LOCK_NB 옵션을 사용하여 파일 잠금을 비동기적으로 수행할 수 있습니다. LOCK_NB 옵션은 파일 잠금을 비동기적으로 수행할 때 사용하는 옵션입니다. LOCK_NB 옵션을 사용하면, 파일 잠금을 수행하는 동안 다른 프로세스가 파일을 열려고 할 때 에러가 발생하지 않고, 대신에 파일 잠금을 수행하는 프로세스는 에러를 반환합니다.
LOCK_NB 옵션을 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
php
$file = new SplFileObject('example.txt', 'w');
if ($file->flock(LOCK_EX | LOCK_NB)) {
$file->fwrite('Hello, World!');
$file->flock(LOCK_UN);
} else {
echo "파일을 열 수 없습니다.";
}
위 예제에서 LOCK_NB 옵션을 사용하여 파일 잠금을 비동기적으로 수행합니다. 파일 잠금을 수행하는 동안 다른 프로세스가 파일을 열려고 할 때 에러가 발생하지 않고, 대신에 파일 잠금을 수행하는 프로세스는 에러를 반환합니다.
2025-07-13 01:12