PHP - Direct I/O dio_stat() Function



The PHP Direct I/O dio_stat() function is used to give the status information of the file descriptor if successful.

Syntax

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

array dio_stat (resource $fd)

Parameters

This function accepts $fd parameter which is the resource represents the file descriptor. The file handle needs to be authentic.

Return Value

The dio_stat() function returns statistics about a file descriptor fd. This function can return an associative array with the following keys −

  • "device" − device
  • "inode" − inode
  • "mode" − mode
  • "nlink" − number of hard links
  • "uid" − user id
  • "gid" − group id
  • "device_type" − device type (if it is an inode-device)
  • "size" − total size in bytes
  • "blocksize" − block size
  • "blocks" − the number of occupied blocks
  • "atime" − time of last access to
  • "mtime" − time of the last modification
  • "ctime" − time of the last change

On error, the dio_stat() function can return NULL.

PHP Version

First introduced in core PHP 4.2.0, the dio_stat() 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_stat() function to get the status information of an open file.

<?php
   // Mention file descriptor here
   $fd = dio_open('/PHP/PhpProjects/myfile.txt', O_RDONLY);
   $stat = dio_stat($fd);
   print_r($stat);
   dio_close($fd);
?>

Output

The above code will result something like this −

Array (
    [device] => 16777231
    [inode] => 14530643
    [mode] => 33188
    [nlink] => 1
    [uid] => 501
    [gid] => 20
    [device_type] => 0
    [size] => 27
    [block_size] => 4096
    [blocks] => 8
    [atime] => 1722248116
    [mtime] => 1722248114
    [ctime] => 1722248114
)

Example 2

In the below PHP code we will try to use the dio_stat() function and get the size of a file.

<?php
   // Mention file descriptor here
   $fd = dio_open('/PHP/PhpProjects/sample.txt', O_RDONLY);
   $stat = dio_stat($fd);
   echo "File size: " . $stat['size'] . " bytes";
   dio_close($fd);
?> 

Output

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

File size: 94 bytes

Example 3

Now the below code to find out when a file was last accessed with the help of dio_stat(), and prints it.

<?php
   // Mention file descriptor here
   $fd = dio_open('/PHP/PhpProjects/newfile.txt', O_RDONLY);
   $stat = dio_stat($fd);
   echo "Last accessed: " . date('Y-m-d H:i:s', $stat['atime']);
   dio_close($fd);
?> 

Output

This will create the below output −

Last accessed: 2024-07-29 05:58:20

Example 4

In the following example, we are using the dio_stat() function to check the permissions of a file.

<?php
   // Mention file descriptor here
   $fd = dio_open('/PHP/PhpProjects/myfile.txt', O_RDONLY);
   $stat = dio_stat($fd);
   echo "File permissions: ".decoct($stat['mode'] & 0777);
   dio_close($fd);
?> 

Output

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

File permissions: 644
php_function_reference.htm
Advertisements