|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits              [2010-03-07 03:07 UTC] whistl0r+php at googlemail dot com
  [2010-03-10 22:11 UTC] jani@php.net
 
-Operating System: Windows
+Operating System: win32 only
  [2010-11-22 06:21 UTC] cataphract@php.net
 
-Status: Open
+Status: Bogus
  [2010-11-22 06:21 UTC] cataphract@php.net
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 03:00:01 2025 UTC | 
Description: ------------ A script creates files. To make sure that no "reader" is accessing the file while the script is changing its content (think of a cache!), you will use flock() to secure the progress. Tested with PHP Version 5.2.12 (CGI/FastCGI), latest Zend Server release. Test script: --------------- <?php // Set a plain text header header('Content-Type: text/plain; charset=iso-8859-1'); header('X-Content-Type-Options: nosniff'); $tempFile = tempnam(sys_get_temp_dir(), 'lTest'); if ($tempFile === FALSE) { die('Temp file creation failed!'); } else { echo 'Our temp file will be: ' . $tempFile . PHP_EOL; } $fh = fopen($tempFile, 'w'); if ($fh === FALSE) { die('Cannot get file handler!'); } $lock = flock($fh, LOCK_EX); if ($lock === FALSE) { die('Cannot get file lock!'); } unlink($tempFile); clearstatcache(); if (file_exists($tempFile) === TRUE) { die('I was unable to delete the file!'); } $lock = flock($fh, LOCK_UN); if ($lock === FALSE) { die('Unable to release lock!'); } fclose($fh); echo 'Successful! We created a temp file, which we deleted, while the file was locked!' . PHP_EOL; Expected result: ---------------- I expect that it will work in Windows, like it is working on Linux. If this isn't possible, it should be documented. Actual result: -------------- It will work fine on Linux, but on Windows it will raise a "SHARING VIOLATION" (trace it in "Process Monitor" from SysInternals).