52 file_descriptor_t file_descriptor{};
53 const auto result = fopen_s( &file_descriptor, file_path,
"rb" );
57 const auto err_code = errno;
60 RESTINIO_FMT_FORMAT_STRING(
"fopen_s('{}') failed; errno={}" ),
65 return file_descriptor;
67 file_descriptor_t file_descriptor = std::fopen( file_path,
"rb" );
69 if( null_file_descriptor() == file_descriptor )
73 RESTINIO_FMT_FORMAT_STRING(
"std::fopen failed: '{}'" ),
78 return file_descriptor;
94 file_descriptor_t file_descriptor{};
95 const auto result = _wfopen_s( &file_descriptor, file_path.c_str(), L"rb" );
99 const auto err_code = errno;
102 RESTINIO_FMT_FORMAT_STRING(
"_wfopen_s failed; errno={}" ),
107 return file_descriptor;
110 return open_file( file_path.c_str() );
115 template <
typename META >
constexpr file_descriptor_t null_file_descriptor()
Get file descriptor which stands for null.
std::enable_if< std::is_same< Parameter_Container, query_string_params_t >::value||std::is_same< Parameter_Container, router::route_params_t >::value, std::optional< Value_Type > >::type opt_value(const Parameter_Container ¶ms, string_view_t key)
Gets the value of a parameter specified by key wrapped in std::optional<Value_Type> if parameter exis...
file_descriptor_t open_file(const std::filesystem::path &file_path)
Helper function that accepts std::filesystem::path.
void close_file(file_descriptor_t fd)
Close file by its descriptor.
META get_file_meta(file_descriptor_t fd)
Get file size.
file_descriptor_t open_file(const char *file_path)
Open file.