PHP에서 mecanism을 뽐내고 있는데 LOCK_SH 모드의 기능을 이해하는 데 어려움을 겪고 있습니다. 사이트에서 파일을 잠그기 때문에 다른 스크립트에서 쓰기를 할 수 없지만 읽을 수는 있습니다. 다음 코드는 예상대로 작동하지 않았다 그러나 :LOCK_SH는 어떻게 작동합니까?
$fp = fopen('my_file.txt','r');
flock($fp, LOCK_SH);
sleep(20);
flock($fp, LOCK_UN);
을 그리고 file2.php에 나는
$fp = fopen('my_file.txt','a');
fwrite($fp,'test');
내가 파일을 잠그는 첫 번째 스크립트를 실행해야 : file1.php에서 나는이 20 초 동안. 잠금 장치가있는 상태에서 file2.php를 실행하여 즉시 실행을 마친 후 'my_file.txt'열 때 'test'문자열이 추가되었습니다 ('file1.php'는 여전히 실행 중입니다). 나는 'file2.php'를 변경하여 잠긴 파일과 문제가없는 빨간색 파일을 읽으려고 시도합니다. 그래서 분명히 ... 'LOCK_SH'솔기는 전혀하지 않습니다. 그러나 LOCK_EX를 사용하면 파일을 잠그므로 스크립트에서 파일에 쓰거나 읽을 수 없습니다. 나는 Easy PHP를 사용 중이며 Windows 7에서 실행 중입니다.
는 지금은 이해합니다. 당신이 설명했던 메커니즘을 테스트했고 문제없이 작동했습니다. 당신은 최고입니다. –