std::filesy..._write_time(3)
π
std::filesy..._write_time(3) β the C++ Standard Libary manual, bestie! π
Manual name: std::filesy..._write_time(3). Yes, the title is literally the same on both sides of the header, and we are moving on. Iconic behavior only. β¨
πΈ NAME πΈ
std::filesystem::last_write_time β and yep, the NAME line is literally std::filesystem::last_write_time - std::filesystem::last_write_time. No notes. π
π Synopsis π
Defined in header <filesystem>.
All four overloads are since C++17, periodt. π«Ά
(1) (since C++17)
std::filesystem::file_time_type last_write_time( const std::filesystem::path& p );
(2) (since C++17)
std::filesystem::file_time_type last_write_time( const std::filesystem::path& p,
std::error_code& ec ) noexcept;
(3) (since C++17)
void last_write_time( const std::filesystem::path& p,
std::filesystem::file_time_type new_time );
(4) (since C++17)
void last_write_time( const std::filesystem::path& p,
std::filesystem::file_time_type new_time,
std::error_code& ec ) noexcept;
Okay so bestie, here's the tea: π
1,2)These return the time of the last modification ofp, determined as if by accessing the memberst_mtimeof the POSIXstat(symlinks are followed). The non-throwing overload returnsfile_time_type::min()on errors.3,4)These change the time of the last modification ofp, as if by POSIXfutimens(symlinks are followed).
π§ Parameters π§
pβ path to examine or modifynew_timeβ new modification timeecβ out-parameter for error reporting in the non-throwing overload
π Return value π
1,2)The time of the last modification ofp.3,4)(none)
π Exceptions π
Any overload not marked noexcept may throw std::bad_alloc if memory allocation fails.
1,3)Throwsstd::filesystem::filesystem_erroron underlying OS API errors, constructed withpas the first path argument and the OS error code as the error code argument.2,4)Sets astd::error_code¶meter to the OS API error code if an OS API call fails, and executesec.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 filesystem::file_time_type. Literally the filesystem said "best I can do is this much precision." π
π¬ 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::filesystem::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)last_write_timeβ gets the time of the last data modification of the file to which thelast_write_timedirectory entry refers.(C++17)(public member function of std::filesystem::directory_entry)
That's the whole page, bestie π Source/version: http://cppreference.com β date: 2024.06.10 β manual: std::filesy..._write_time(3). Byeee, go touch some filesystem timestamps π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms