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