Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP - Direct I/O dio_open() Function



The PHP Direct I/O dio_open() function is used to open a new filename file with specified flags permission and mode creation permission.

This method can open a file and return a new file descriptor for it, or -1 if an error occurs. If "flags" is O_CREAT, an optional third parameter mode can set a file mode (permission to create).

Syntax

Below is the syntax of the PHP Direct I/O dio_open() function −

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

Parameters

Below are the parameters of the dio_open() function −

  • $filename − It is the path to the file you want to open.

  • $flags − It is the flags that shows how the file will be opened.

  • $mode − It is the permission to use if a new file is created.

The flags parameter can be one of O_RDONLY (open a file for reading), O_WRONLY (open a file for writing), and O_RDWR (open a file for reading and writing). The $flags parameter may also contain combinations of the following flags −

  • O_RDONLY − To open the file for read access.
  • O_WRONLY − To open the file for write access.
  • O_RDWR − To open the file for both reading and writing.
  • O_CREAT − Create a file if it does not exist.
  • O_EXCL − When both O_CREAT and O_EXCL are set, dio_open() can fail if the file already exists.
  • O_TRUNC − If the file exists, and is open for writing, it is truncated to zero sizes.
  • O_APPEND − Write operations write data to the end of the file.
  • O_NONBLOCK − Set non-blocking mode.
  • O_NOCTTY − When opening a TTY device file, set O_NOCTTY to prevent the operating system from assigning the opened file as the process's controlling terminal.

Return Value

The dio_open() function returns a file descriptor resource on success, or FALSE on failure.

PHP Version

First introduced in core PHP 4.2.0, the dio_open() function continues to function easily in PHP 5.1.0.

Example 1

First we will show you the basic example of the PHP Direct I/O dio_open() function to open a file for reading only.

<?php
   // Open a file descriptor
   $fd = dio_open('/PHP/PhpProjects/myfile.txt', O_RDONLY);
   if ($fd) {
       echo "File opened successfully.";
       dio_close($fd);
   } else {
       echo "Failed to open file.";
   }
?>

Output

The above code will result something like this −

File opened successfully.

Example 2

In the below code we will use the dio_open() function and create a new file (if it does not exist) and open it for writing.

<?php
   // Open a file descriptor
   $fd = dio_open('/PHP/PhpProjects/myfile.txt', O_WRONLY | O_CREAT, 0644);
   if ($fd) {
       echo "File created and opened for writing.";
       dio_close($fd);
   } else {
       echo "Failed to create and open file.";
   }
?> 

Output

After running the above program, it generates the following output −

File created and opened for writing.

Example 3

This example demonstrates how to open a file with the help of dio_open() method for both reading and writing.

<?php
   // Open a file descriptor
   $fd = dio_open('/PHP/PhpProjects/myfile.txt', O_RDWR);
   if ($fd) {
       echo "File opened for reading and writing.";
       dio_close($fd);
   } else {
       echo "Failed to open file.";
   }
?> 

Output

This will create the below output −

File opened for reading and writing.

Example 4

In the following example, we are using the dio_open() function to open the file and truncate it upto the zero length.

<?php
   // Open a file descriptor
   $fd = dio_open('truncate.txt', O_WRONLY | O_TRUNC);
   if ($fd) {
       echo "File opened and truncated.";
       dio_close($fd);
   } else {
       echo "Failed to open and truncate file.";
   }
?> 

Output

When the above program is executed, it will produce the below output −

File opened and truncated.
php_function_reference.htm
Advertisements