dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5)

dio_open — Opens a new filename with specified permissions of flags and creation permissions of mode

Описание

resource dio_open ( string $filename , int $flags [, int $mode ] )

dio_open() opens a file and returns a new file descriptor for it.

Список параметров

filename

The opened file.

flags

The flags parameter can also include any combination of the following flags:

  • O_CREAT - creates the file, if it doesn't already exist.

  • O_EXCL - if both, O_CREAT and O_EXCL are set, dio_open() fails, if the file already exists.

  • O_TRUNC - if the file exists, and its opened for write access, the file will be truncated to zero length.

  • O_APPEND - write operations write data at the end of the file.

  • O_NONBLOCK - sets non blocking mode.

mode

If flags is O_CREAT, mode will set the mode of the file (creation permissions).

  • O_RDONLY - opens the file for read access.

  • O_WRONLY - opens the file for write access.

  • O_RDWR - opens the file for both reading and writing.

Возвращаемые значения

A file descriptor or FALSE on error.

Примеры

Пример #1 Opening a file descriptor

<?php

$fd 
dio_open('/dev/ttyS0'O_RDWR O_NOCTTY O_NONBLOCK);

dio_close($fd);
?>

Смотрите также

Коментарии

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);
2003-03-22 09:16:29
http://php5.kiev.ua/manual/ru/function.dio-open.html
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.
2005-01-23 18:13:07
http://php5.kiev.ua/manual/ru/function.dio-open.html
Автор:
One of the prominent reasons to use direct IO, is for it's ability to do actual direct IO, bypassing the operating system cache and getting the data from the disk directly. 
The flag to do that (O_DIRECT) is missing from the documentation above. Maybe for good reasons, because this type of IO only works on blockdevices, not on files, and should only be used if you are **really** sure what you are doing.
2010-03-03 14:02:57
http://php5.kiev.ua/manual/ru/function.dio-open.html
Автор:
"The prominent reason" to use direct I/O is when your application provides its own cache feature, so you won't do double caching
2012-04-08 05:12:13
http://php5.kiev.ua/manual/ru/function.dio-open.html

    Поддержать сайт на родительском проекте КГБ