Christian Seiler: Neuer Artikel: Sperren von Dateien

Beitrag lesen

Hallo nochmal,

file_put_contents() oder ähnliches wird halt bei Mandatory Locking versagen.

Oh, das hatte ich überlesen, das hat das wohl inzwischen Locks eingebaut.

Allerdings habe ich mir gerade den Sourcecode angesehen und schwupp... die PHP-Leute haben's natürlich falsch gemacht. In PHP 5.2.4 steht nämlich (ext/standard/file.c):

        stream = php_stream_open_wrapper_ex(filename, (flags & PHP_FILE_APPEND) ? "ab" : "wb",  
                        ((flags & PHP_FILE_USE_INCLUDE_PATH) ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context);  
        if (stream == NULL) {  
                RETURN_FALSE;  
        }  
  
        if (flags & LOCK_EX && php_stream_lock(stream, LOCK_EX)) {  
                php_stream_close(stream);  
                RETURN_FALSE;  
        }

Das heißt, sie machen gerade "Dateien zum Schreiben öffnen" falsch. Mal Testcase schreiben und als Bug melden.

Also ist meine Aussage, dass es bei Mandatory Locking versagen wird, wohl doch nicht ganz falsch - obwohl's inzwischen "im Prinzip" nicht versagen sollte...

Viele Grüße,
Christian