std::experi..._write_time(3)
β¨ NAME β¨
okay so bestie, welcome to the std::experimental::filesystem::last_write_time page from the C++ Standard Libary manual, section 3 π
std::experimental::filesystem::last_write_time β std::experimental::filesystem::last_write_time. Like, yes, the NAME section is literally the same thing twice with a dash, and honestly? iconic. π
πΈ Synopsis πΈ
Defined in header <experimental/filesystem>:
file_time_type last_write_time( const path& p ); (1)
(filesystem TS)
file_time_type last_write_time( const path& p, error_code& ec )
void last_write_time( const path& p, file_time_type new_time );
void last_write_time( const path& p, file_time_type new_time, (2)
(filesystem TS)
error_code& ec );
- Returns the time of the last modification of
p, determined as if by accessing the memberst_mtimeof the POSIXstat(symlinks are followed). The non-throwing overload returnsfile_time_type::min()on errors. - Changes the time of the last modification of
p, 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 π
- The time of the last modification of
p. - (none)
π¨ Exceptions π¨
The overload that does not take an error_code& parameter throws filesystem_error on underlying OS API errors, constructed with p as the first argument and the OS error code as the error code argument. std::bad_alloc may be thrown if memory allocation fails.
The overload taking an 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. This overload has noexcept specification: noexcept. π«Ά
π 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 file_time_type. no cap, time granularity is out here doing its own thing. π
π§ͺ Example π§ͺ
// Run this code
#include <chrono>
#include <experimental/filesystem>
#include <fstream>
#include <iomanip>
#include <iostream>
namespace fs = std::experimental::filesystem;
using namespace std::chrono_literals;
int main()
{
fs::path p = fs::current_path() / "example.bin";
std::ofstream(p.c_str()).put('a'); // create file
auto ftime = fs::last_write_time(p);
std::time_t cftime = decltype(ftime)::clock::to_time_t(ftime); // assuming system_clock
std::cout << "File write time is " << std::asctime(std::localtime(&cftime)) << '\n';
fs::last_write_time(p, ftime + 1h); // move file write time 1 hour to the future
ftime = fs::last_write_time(p); // read back from the filesystem
cftime = decltype(ftime)::clock::to_time_t(ftime);
std::cout << "File write time is " << std::asctime(std::localtime(&cftime)) << '\n';
fs::remove(p);
}
π« Possible output π«
File write time is Tue Mar 31 19:47:04 2015
File write time is Tue Mar 31 20:47:04 2015
π See also π
file_time_typerepresents file time values (typedef)
π Categories π
- Noindexed pages
- unconditionally noexcept
π«Ά Hidden categories π«Ά
- Pages with unreviewed unconditional noexcept template
- Pages with unreviewed noexcept template
mwah π that's the whole page, bestie β source is http://cppreference.com, date/version is 2024.06.10, and the footer manual title was std::experi..._write_time(3) (yes, truncated exactly like that). πβ¨π¦
π¦ 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