Please note that dio_open()/dio_write()/dio_close() is *faster* than fopen()/fwrite()/fclose() for files.
fwrite() has to manage a 8k buffer, while dio_write() just issue a single write(). The end result is less system calls and less memory access.
Also, giving the full size to write() as with dio_write() let filesystems properly use preallocation in order to avoid fragmentation.
dio_open
(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)
dio_open — Öffnet eine Datei mit den angegebenen Rechten
Beschreibung
dio_open() öffnet eine Datei und liefert einen Dateideskriptor zurück.
Parameter-Liste
- filename
-
Die zu öffnende Datei.
- flags
-
Der Parameter flags kann eine Kombination der folgenden Flags enthalten:
-
O_CREAT - erzeugt die Datei, falls diese nicht existiert
-
O_EXCL - in Kombination mit O_CREAT wird ein Fehler (-1) zurückgegeben, wenn die Datei bereits existiert
-
O_TRUNC - falls die Datei bereits existiert, und sie für Schreibzugriff geöffnet wird, wird diese auf die Grösse 0 zurückgesetzt
-
O_APPEND - setzt den Zeiger für Schreiboperationen an das Ende der Datei
-
O_NONBLOCK - Setzt den Modus auf "nonblocking"
-
- mode
-
Wenn flags das Flag O_CREAT enthält mode die Dateizugriffsrechte.
-
O_RDONLY - öffnet die Datei für Lesezugriff
-
O_WRONLY - öffnet die Datei für Schreibzugriff
-
O_RDWR - öffnet die Datei für Schreib- und Lesezugriff
-
Rückgabewerte
Ein Dateideskriptor oder FALSE bei Fehlern.
Beispiele
Beispiel #1 Öffnen eines Dateideskriptors
<?php
$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);
dio_close($fd);
?>
dio_open
24-Jan-2005 01:13
22-Mar-2003 04:16
To specify a combination of flags you OR them together.
This was the only way I could get it to append:
$fd = dio_open($file, O_WRONLY | O_APPEND);
