native_handle_type native_handle() const noexcept;
概要
処理系定義のネイティブハンドルを取得する。
事前条件
is_open()
がtrue
を返すこと
戻り値
以下と等価:
return rdbuf()->native_handle();
備考
- ネイティブハンドルは、ファイルが閉じられると無効になる
例
// 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
処理系
- Clang: 18 ✅
- GCC: 14 ✅
- Visual C++: ??