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
	  std::filesystem::path& p);

	  std::filesystem::file_time_type		 last_write_time(const
       (1) (since C++17)
	  std::filesystem::path& p,

	  std::error_code& ec) noexcept;
	  void last_write_time(const std::filesystem::path& p,

	  std::filesystem::file_time_type new_time);
	  void	    last_write_time(const      std::filesystem::path&	    p,
       (2) (since C++17)
	  std::filesystem::file_time_type new_time,

	  std::error_code& ec) noexcept;

	  1)  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.
	  2)  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) The time of the last modification of p
	  2) (none)

Exceptions
	  The overload that does not take a std::error_code& parameter throws
	  filesystem::filesystem_error	on  underlying	OS  API	 errors,  con-
       structed	with p as the
	  first	path argument and the OS error code as the  error  code	 argu-
       ment. The overload
	  taking a std::error_code& parameter sets it to the OS	API error code
       if an OS	API
	  call fails, and executes ec.clear() if no errors occur. Any overload
       not marked
	  noexcept may throw std::bad_alloc if memory allocation fails.

Notes
	  It  is not guaranteed	that immediately after setting the write time,
       the value
	  returned by (1) is the same as what was passed as  the  argument  to
       (2) 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);

	    std::filesystem::last_write_time(p,	 ftime	+  1h);	 //  move file
       write time 1 hour to the	future
	    ftime = std::filesystem::last_write_time(p); // read back from the
       filesystem
	    std::cout << std::format("File write time is {}\n",	ftime);

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

Possible output:
	File write time	is Sun May  9 23:29:58 2021
	File write time	is Mon May 10 00:29:58 2021

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

http://cppreference.com		  2022.07.31	  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.0>

home | help