PHP Filesystem fdatasync() Function



The PHP Filesystem fdatasync() function is used to synchronize changes made to a file's data with the underlying storage device. But there are similarities between this function and fsync(), only the file's data is synced; its metadata is not.

Keep in mind that POSIX(Portable Operating System Interface) systems are the only ones where this feature is truly different. This function is aliased to fsync() on Windows.

Syntax

Below is the syntax of the PHP Filesystem fdatasync() function −

bool fdatasync(resource $stream)

Parameters

Below is the only required parameter of the fdatasync() function −

Sr.No Parameter & Description
1

$stream(Required)

The file pointer needs to point to a file that has been successfully opened by fopen() and has not been closed by fclose(). It also needs to be valid.

Return Value

The fdatasync() function returns TRUE on success and FALSE on failure.

PHP Version

The fdatasync() function was first introduced in PHP 8.1.0 version.

Example

Here is the basic example to see how the PHP Filesystem fdatasync() function is used to synchronize the changes made to the file.

<?php
   $filePointer = fopen('/PhpProjects/myfile.txt', 'w'); 
   fwrite($filePointer, 'Hello, world!'); 
   
   if (fdatasync($filePointer)) { 
      echo "File changes were saved successfully."; 
   } else { 
      echo "Could not save file changes."; 
   } 
   fclose($filePointer); 
?>

Output

Here is the outcome of the following code −

File changes were saved successfully.

Example

This is an additional PHP example code that demonstrate the usage of the fdatasync() method.

<?php
   $fileHandle = fopen('/PhpProjects/sample.txt', 'w'); 
   fwrite($fileHandle, 'Hello, Tutorialspoint!'); 

   fdatasync($fileHandle); 
   fclose($fileHandle); 

   echo "File changes were saved successfully."; 
?> 

Output

This will produce the following output −

File changes were saved successfully.

Example

Here is one more example to synchronize data inside the file provided using fdatasync() function.

<?php
   $fileHandle = fopen('/PhpProjects/sample.txt', 'w'); 
   fwrite($fileHandle, "Line 1\n"); 
   fwrite($fileHandle, "Line 2\n"); 
   fwrite($fileHandle, "Line 3\n"); 

   fdatasync($fileHandle); 
   fclose($fileHandle); 

   echo "The sample changes were saved successfully."; 
?> 

Output

This will generate the below output −

The sample changes were saved successfully.

Example

Here is one more example to use fdatasync() function to fdatasync for secure file creation.

<?php
   $data = "Name: Amit Sharma\nEmail: [email protected]\nMessage: Hello, this is a test message.";
   $fileHandle = fopen('/PhpProjects/sample.txt', 'w'); 
   fwrite($fileHandle, $data); 

   fdatasync($fileHandle); 
   fclose($fileHandle); 

   echo "The sample.txt file changes were saved successfully."; 
?> 

Output

This will lead to the following output −

Below is the file data −

Name: Amit Sharma
Email: [email protected]
Message: Hello, this is a test message. 

Here is the console output −

The sample.txt file changes were saved successfully.

Summary

The fdatasync() method is a built-in function to synchronize the changes made to the file but it only synchronizes the file's data, not its metadata. The function returns true on success.

php_function_reference.htm
Advertisements