SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #51  
Alt 01.03.2006, 13:04:28
Giz Giz ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 309
AW: fopen() ohne Überschreiben

Zitat:
Zitat von Heppi
Weil ich es ausprobiert habe.
Wenn Du meinst, dass dieser Test richtige Ergebnisse geliefert hat, dann versuche es doch auf andere Art einzulesen. Das ändert aber nichts an Deinem Problem.
Mit Zitat antworten
  #52  
Alt 01.03.2006, 22:30:52
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: fopen() ohne Überschreiben

Zitat:
Zitat von feuervogel
so lange nur ein cpu-kern werkelt, ist eh erst mal alles sequentiell. und selbst bei mehreren cpus dürfte die abwicklung der datenbank sequentiell sein, anders macht es ja auch keinen sinn, da es sonst auch hier zu oben genannten fehlern käme.
ähmm
das würde bedeuten, dass unter php niemals ein zeitgleicher zugriff möglich wäre, da php serverseitig arbeitet und da sollte es dann ja nur eine cpu zugreifen (sprich alles sequentiell abgearbeitet werden).

zum thema flock, man kann das file ja unterschiedlich verriegeln:

zitat von http://at.php.net/manual/de/function.flock.php
Zitat:
flock() arbeitet mit handle, welcher ein existierender Dateizeiger sein muss. Der Parameter operation bestimmt die Art der Verriegelung und kann einen der folgenden Werte annehmen:

*
Um eine verteilte, nur lesende Verriegelung zu erhalten, setzen Sie operation auf LOCK_SH (bzw. 1 vor PHP 4.0.1).
*
Um eine exklusive, nur schreibende Verriegelung zu erhalten, setzen Sie operation auf LOCK_EX (bzw. 2 vor PHP 4.0.1).
*
Um eine Verriegelung freizugeben (lesend oder schreibend), setzen Sie operation auf LOCK_UN (bzw. 3 vor PHP 4.0.1).
*
Wenn Sie Zugriffe während der Verriegelung durch flock() erlauben wollen, fügen Sie LOCK_NB (bzw. 4 vor PHP 4.0.1) zu operation hinzu.
was ich jetzt nicht verstehe ist folgendes:
1.
wird mit flock($fp,LOCK_EX) ein exklusiver schreibzugriff zugriff gesetzt kann die datei nicht zum lesen geöffnet werden. file_exists() gibt aber immer TRUE zurück.
2.
startet eine neue instanz des apaches auch eine neue php instanz ?
wenn nein, muss php ja wissen, dass ein lock auf die datei steht und warten, bis sie wieder frei gegeben wird. ausserdem sollte php doch erkennen, dass wenn ein lock auf einer datei steht, diese datei vorhanden sein muss.

ich weiss, viele fragen, aber das interessiert mich nun mal sehr.

Geändert von sysop (02.03.2006 um 00:11:09 Uhr)
Mit Zitat antworten
  #53  
Alt 02.03.2006, 04:25:03
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: fopen() ohne Überschreiben

Zitat:
Zitat von sysop
das würde bedeuten, dass unter php niemals ein zeitgleicher zugriff möglich wäre, da php serverseitig arbeitet und da sollte es dann ja nur eine cpu zugreifen (sprich alles sequentiell abgearbeitet werden).
Das Problem ist, daß dabei nicht das komplette Script in einem Arbeitsgang abgearbeitet wird.

Zitat:
zum thema flock, man kann das file ja unterschiedlich verriegeln:
fopen und flock wird nicht in einem Arbeitsgang erledigt. Es gibt dabei einen mehr oder weniger kleinen Zeitbereich zwischen fopen und flock. File offen aber noch nicht geLOCKt. Und weil niemand genau wissen kann, was in diesem kurzen Zeitbereich passiert - Logfile schreiben, email verteilen, mysqld etwas arbeiten lassen, der Apache schickt ein anderes Script zu PHP - sollte man sich schlicht und einfach nicht darauf verlassen.

Zitat:
startet eine neue instanz des apaches auch eine neue php instanz ?
Das sollte mehr beachtet werden:
Zitat:
Bei einigen Betriebssystemen ist flock() auf dem Prozesslevel implementiert. Wenn Sie ein multithreaded Server API wie ISAPI benutzen können Sie sich nicht auf flock() verlassen, um Dateien vor anderen PHP-Skripten zu schützen, welche in parallelen Threads der gleichen Server-Instanz laufen!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
fopen Parameter Franzx PHP Grundlagen 5 19.01.2006 12:30:02
fopen() - Sicherheitslücke? Gweilo Off Topic Area 2 18.01.2005 18:55:43
fopen mit url gibt fehler ?! kruschde PHP für Fortgeschrittene und Experten 3 14.12.2004 16:02:28
Probleme mit fopen andi_g PHP für Fortgeschrittene und Experten 0 13.03.2004 18:02:09
Problem mit Array und fopen() DeMaephis PHP für Fortgeschrittene und Experten 1 07.12.2002 12:50:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:56:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt