- fstream[meta header]
- std[meta namespace]
- basic_ofstream[meta class]
- function[meta id-type]
- cpp26[meta cpp]
native_handle_type native_handle() const noexcept;処理系定義のネイティブハンドルを取得する。
is_open()がtrueを返すこと
以下と等価:
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
- Clang: 18 [mark verified]
- GCC: 14 [mark verified]
- Visual C++: ??