/
usr
/
include
/
boost
/
process
/
detail
/
windows
/
/usr/include/boost/process/detail/windows
mkdir
upload
Name
Size
Mode
Actions
asio_fwd.hpp
1354
0644
edit
dl
rm
async_handler.hpp
1195
0644
edit
dl
rm
async_in.hpp
3557
0644
edit
dl
rm
async_out.hpp
6079
0644
edit
dl
rm
async_pipe.hpp
17611
0644
edit
dl
rm
basic_cmd.hpp
5072
0644
edit
dl
rm
basic_pipe.hpp
8451
0644
edit
dl
rm
child_handle.hpp
3185
0644
edit
dl
rm
close_in.hpp
1040
0644
edit
dl
rm
close_out.hpp
1743
0644
edit
dl
rm
cmd.hpp
993
0644
edit
dl
rm
compare_handles.hpp
1488
0644
edit
dl
rm
environment.hpp
10976
0644
edit
dl
rm
env_init.hpp
1615
0644
edit
dl
rm
executor.hpp
8045
0644
edit
dl
rm
file_descriptor.hpp
3747
0644
edit
dl
rm
file_in.hpp
1735
0644
edit
dl
rm
file_out.hpp
2691
0644
edit
dl
rm
group_handle.hpp
6527
0644
edit
dl
rm
group_ref.hpp
1572
0644
edit
dl
rm
handler.hpp
566
0644
edit
dl
rm
handles.hpp
5746
0644
edit
dl
rm
handle_workaround.hpp
8924
0644
edit
dl
rm
io_context_ref.hpp
5043
0644
edit
dl
rm
is_running.hpp
1411
0644
edit
dl
rm
job_workaround.hpp
9721
0644
edit
dl
rm
locale.hpp
3154
0644
edit
dl
rm
null_in.hpp
1559
0644
edit
dl
rm
null_out.hpp
2576
0644
edit
dl
rm
on_exit.hpp
1202
0644
edit
dl
rm
pipe_in.hpp
2571
0644
edit
dl
rm
pipe_out.hpp
3535
0644
edit
dl
rm
search_path.hpp
2808
0644
edit
dl
rm
shell_path.hpp
1568
0644
edit
dl
rm
show_window.hpp
1308
0644
edit
dl
rm
start_dir.hpp
1026
0644
edit
dl
rm
terminate.hpp
1329
0644
edit
dl
rm
wait_for_exit.hpp
4048
0644
edit
dl
rm
wait_group.hpp
4337
0644
edit
dl
rm
Edit:
/usr/include/boost/process/detail/windows/file_descriptor.hpp
(3747B)
// Copyright (c) 2016 Klemens D. Morgenstern // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PROCESS_DETAIL_WINDOWS_FILE_DESCRIPTOR_HPP_ #define BOOST_PROCESS_DETAIL_WINDOWS_FILE_DESCRIPTOR_HPP_ #include <boost/winapi/basic_types.hpp> #include <boost/winapi/handles.hpp> #include <boost/winapi/file_management.hpp> #include <string> #include <boost/filesystem/path.hpp> #include <boost/core/exchange.hpp> namespace boost { namespace process { namespace detail { namespace windows { struct file_descriptor { enum mode_t { read = 1, write = 2, read_write = 3 }; static ::boost::winapi::DWORD_ desired_access(mode_t mode) { switch(mode) { case read: return ::boost::winapi::GENERIC_READ_; case write: return ::boost::winapi::GENERIC_WRITE_; case read_write: return ::boost::winapi::GENERIC_READ_ | ::boost::winapi::GENERIC_WRITE_; default: return 0u; } } file_descriptor() = default; file_descriptor(const boost::filesystem::path& p, mode_t mode = read_write) : file_descriptor(p.native(), mode) { } file_descriptor(const std::string & path , mode_t mode = read_write) #if defined(BOOST_NO_ANSI_APIS) : file_descriptor(::boost::process::detail::convert(path), mode) #else : file_descriptor(path.c_str(), mode) #endif {} file_descriptor(const std::wstring & path, mode_t mode = read_write) : file_descriptor(path.c_str(), mode) {} file_descriptor(const char* path, mode_t mode = read_write) #if defined(BOOST_NO_ANSI_APIS) : file_descriptor(std::string(path), mode) #else : _handle( ::boost::winapi::create_file( path, desired_access(mode), ::boost::winapi::FILE_SHARE_READ_ | ::boost::winapi::FILE_SHARE_WRITE_, nullptr, ::boost::winapi::OPEN_ALWAYS_, ::boost::winapi::FILE_ATTRIBUTE_NORMAL_, nullptr )) #endif { } file_descriptor(const wchar_t * path, mode_t mode = read_write) : _handle( ::boost::winapi::create_file( path, desired_access(mode), ::boost::winapi::FILE_SHARE_READ_ | ::boost::winapi::FILE_SHARE_WRITE_, nullptr, ::boost::winapi::OPEN_ALWAYS_, ::boost::winapi::FILE_ATTRIBUTE_NORMAL_, nullptr )) { } file_descriptor(const file_descriptor & ) = delete; file_descriptor(file_descriptor &&other) : _handle( boost::exchange(other._handle, ::boost::winapi::INVALID_HANDLE_VALUE_) ) { } file_descriptor& operator=(const file_descriptor & ) = delete; file_descriptor& operator=(file_descriptor &&other) { if (_handle != ::boost::winapi::INVALID_HANDLE_VALUE_) ::boost::winapi::CloseHandle(_handle); _handle = boost::exchange(other._handle, ::boost::winapi::INVALID_HANDLE_VALUE_); } ~file_descriptor() { if (_handle != ::boost::winapi::INVALID_HANDLE_VALUE_) ::boost::winapi::CloseHandle(_handle); } ::boost::winapi::HANDLE_ handle() const { return _handle;} private: ::boost::winapi::HANDLE_ _handle = ::boost::winapi::INVALID_HANDLE_VALUE_; }; }}}} #endif /* BOOST_PROCESS_DETAIL_WINDOWS_FILE_DESCRIPTOR_HPP_ */
Save
cmd:
run