라이브러리

[PHP] SplFileObject::flock - 휴대용 파일 잠금




SplFileObject::flock()

`SplFileObject::flock()`는 PHP의 SplFileObject 클래스에서 제공하는 메서드입니다. 이 메서드는 파일에 대한 잠금을 설정하거나 해제하는 데 사용됩니다. 잠금은 파일에 대한 동시 접근을 제어하는 데 사용됩니다.

잠금 모드


`flock()` 메서드는 여러 가지 잠금 모드를 지원합니다. 다음은 지원하는 잠금 모드입니다.

- `LOCK_SH` (읽기 잠금): 파일을 읽기 전용으로 잠금합니다.
- `LOCK_EX` (쓰기 잠금): 파일을 쓰기 전용으로 잠금합니다.
- `LOCK_UN` (잠금 해제): 파일에 대한 잠금을 해제합니다.
- `LOCK_NB` (비블록킹): 파일에 대한 잠금을 설정하거나 해제할 때 블록킹을 방지합니다.

예제


다음 예제는 `flock()` 메서드를 사용하여 파일에 대한 잠금을 설정하고 해제하는 방법을 보여줍니다.

#hostingforum.kr
php

// 파일 열기

$file = new SplFileObject('example.txt', 'w');



// 쓰기 잠금 설정

$file->flock(SplFileObject::LOCK_EX);



// 파일에 데이터 쓰기

$file->fwrite('Hello, World!');



// 쓰기 잠금 해제

$file->flock(SplFileObject::LOCK_UN);



// 파일 닫기

$file->close();



예제 2: 동시 접근 제어


다음 예제는 `flock()` 메서드를 사용하여 동시 접근을 제어하는 방법을 보여줍니다.

#hostingforum.kr
php

// 파일 열기

$file = new SplFileObject('example.txt', 'w');



// 쓰기 잠금 설정 (블록킹)

$file->flock(SplFileObject::LOCK_EX | SplFileObject::LOCK_NB);



// 쓰기 잠금 설정 (비블록킹)

if (!$file->flock(SplFileObject::LOCK_EX)) {

    echo "파일에 대한 쓰기 잠금이 이미 설정되어 있습니다.
";

    exit;

}



// 파일에 데이터 쓰기

$file->fwrite('Hello, World!');



// 쓰기 잠금 해제

$file->flock(SplFileObject::LOCK_UN);



// 파일 닫기

$file->close();



참고


- `SplFileObject` 클래스는 PHP 5.1.0 이상에서 사용할 수 있습니다.
- `flock()` 메서드는 파일에 대한 잠금을 설정하거나 해제하는 데 사용됩니다.
- 잠금 모드는 `LOCK_SH`, `LOCK_EX`, `LOCK_UN`, `LOCK_NB`를 사용할 수 있습니다.
- `LOCK_NB` 모드는 비블록킹을 허용합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 143 페이지

검색

게시물 검색