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 — Abre un archivo cuyo nombre indica el parámetro "nombre_archivo" con las opciones indicadas por "flags" y los permisos establecidos con "modo"
Descripción
La función dio_open() abre un archivo y devuelve un descriptor para su manejo.
Lista de parámetros
- nombre_archivo
-
El nombre del archivo que se quiere abrir.
- flags
-
El parámetro flags puede indicarse mediante cualquier combinación de las siguientes opciones:
-
O_CREAT - crea el archivo si no existía previamente.
-
O_EXCL - si se indican de forma simultanea los valores O_CREAT y O_EXCL, la función dio_open() falla si el archivo existía previamente..
-
O_TRUNC - si el archivo existe y se abre con permiso de escritura, se elimina todo el contenido anterior del archivo y su tamaño se pone a cero.
-
O_APPEND - las operaciones de escritura sobre el archivo escriben los datos al final del archivo.
-
O_NONBLOCK - se establece el modo no-bloqueante.
-
- modo
-
Si el parámetro flags vale O_CREAT, el parámetro modo se utiliza para establecer el modo del archivo (los permisos de creación).
-
O_RDONLY - abre el archivo en modo de solo lectura.
-
O_WRONLY - abre el archivo en modo de escritura.
-
O_RDWR - abre el archivo en modo de lectura y escritura.
-
Valores retornados
El descriptor del archivo o FALSE si se ha producido un error.
Ejemplos
Example #1 Apertura de un descriptor de archivo
<?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);
