Skip to content

Latest commit

 

History

History
82 lines (62 loc) · 1.82 KB

File metadata and controls

82 lines (62 loc) · 1.82 KB

native_handle

  • fstream[meta header]
  • std[meta namespace]
  • basic_ofstream[meta class]
  • function[meta id-type]
  • cpp26[meta cpp]
native_handle_type native_handle() const noexcept;

概要

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

事前条件

戻り値

以下と等価:

return rdbuf()->native_handle();
  • rdbuf()[link rdbuf.md]
  • native_handle()[link /reference/fstream/basic_filebuf/native_handle.md]

備考

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

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

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

int main() {
  std::ofstream ofs("example.txt");

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

  // ネイティブハンドルから、POSIXのAPIでファイルの最終更新日時を取得する
  int fd = ofs.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);
}
  • native_handle[color ff0000]
  • ofs.is_open()[link is_open.md]
  • std::chrono::sys_seconds[link /reference/chrono/sys_time.md]
  • std::chrono::zoned_time[link /reference/chrono/zoned_time.md]

出力例

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

バージョン

言語

  • C++26

処理系

参照