Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::filesy..._write_time(3)  C++ Standard Libary std::filesy..._write_time(3)

NAME
       std::filesystem::last_write_time	- std::filesystem::last_write_time

Synopsis
	  Defined in header <filesystem>
	  std::filesystem::file_time_type	 last_write_time(	 const
       (1) (since C++17)
	  std::filesystem::path& p );
	  std::filesystem::file_time_type last_write_time( const
	  std::filesystem::path&					    p,
       (2) (since C++17)
							   std::error_code&
	  ec ) noexcept;
	  void	   last_write_time(	const	  std::filesystem::path&    p,
       (3) (since C++17)
				std::filesystem::file_time_type	new_time );
	  void last_write_time(	const std::filesystem::path& p,

				std::filesystem::file_time_type	     new_time,
       (4) (since C++17)

				std::error_code& ec ) noexcept;

	  1,2)	Returns	 the time of the last modification of p, determined as
       if by accessing
	  the member st_mtime of the POSIX stat	(symlinks are  followed).  The
       non-throwing
	  overload returns file_time_type::min() on errors.
	  3,4)	Changes	the time of the	last modification of p,	as if by POSIX
       futimens
	  (symlinks are	followed).

Parameters
	  p	   - path to examine or	modify
	  new_time - new modification time
	  ec	   - out-parameter for error  reporting	 in  the  non-throwing
       overload

Return value
	  1,2) The time	of the last modification of p.
	  3,4) (none)

Exceptions
	  Any  overload	not marked noexcept may	throw std::bad_alloc if	memory
       allocation
	  fails.

	  1,3) Throws std::filesystem::filesystem_error	on underlying  OS  API
       errors,
	  constructed  with p as the first path	argument and the OS error code
       as the error
	  code argument.
	  2,4) Sets a std::error_code& parameter to the	OS API error  code  if
       an OS API call
	  fails, and executes ec.clear() if no errors occur.

Notes
	  It  is not guaranteed	that immediately after setting the write time,
       the value
	  returned by (1,2) is the same	as what	was passed as the argument  to
       (3,4) because
	  the	file   system's	 time  may  be	more  granular	than  filesys-
       tem::file_time_type.

Example
       // Run this code

	#include <chrono>
	#include <filesystem>
	#include <format>
	#include <fstream>
	#include <iostream>

	using namespace	std::chrono_literals;

	int main()
	{
	    auto p = std::filesystem::temp_directory_path() / "example.bin";
	    std::ofstream{p.c_str()}.put('a'); // create file

	    std::filesystem::file_time_type	ftime	  =	 std::filesys-
       tem::last_write_time(p);
	    std::cout << std::format("File write time is {}\n",	ftime);

	    // move file write time 1 hour to the future
	    std::filesystem::last_write_time(p,	ftime +	1h);

	    // read back from the filesystem
	    ftime = std::filesystem::last_write_time(p);
	    std::cout << std::format("File write time is {}\n",	ftime);

	    std::filesystem::remove(p);
	}

Possible output:
	File write time	is 2023-09-04 19:33:24.702639224
	File write time	is 2023-09-04 20:33:24.702639224

See also
	  file_time_type  represents file time values
	  (C++17)	  (typedef)
			  gets	the  time of the last data modification	of the
       file to which the
	  last_write_time directory entry refers
			  (public member function  of  std::filesystem::direc-
       tory_entry)

http://cppreference.com		  2024.06.10	  std::filesy..._write_time(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::filesystem::last_write_time&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help