最終更新日時(UTC):
が更新

履歴 編集

function
<fstream>

std::basic_fstream::native_handle(C++26)

native_handle_type native_handle() const noexcept;

概要

処理系定義のネイティブハンドルを取得する。

事前条件

戻り値

以下と等価:

備考

  • ネイティブハンドルは、ファイルが閉じられると無効になる

// POSIX環境
#include <fstream>
#include <print>
#include <chrono>

#include <sys/types.h>
#include <sys/stat.h>

int main() {
  std::fstream fs("example.txt", std::ios_base::in);

  if (!fs.is_open()) {
    std::println("ファイルを開けなかった");
    return 1;
  }

  // ネイティブハンドルから、POSIXのAPIでファイルの最終更新日時を取得する
  int fd = fs.native_handle();
  struct ::stat s{};
  ::fstat(fd, &s);

  std::chrono::sys_seconds last_modified {std::chrono::seconds(s.st_mtim.tv_sec)};
  std::chrono::zoned_time zoned{"Asia/Tokyo", last_modified};
  std::println("Last modified: {}", zoned);
}

出力例

Last modified: 2025-05-28 17:56:55 JST

バージョン

言語

  • C++26

処理系

参照