8# define WIN32_LEAN_AND_MEAN
44 return reinterpret_cast<HANDLE
>(_get_osfhandle(
fd));
56static inline int fromDescriptorReadOnly(Descriptor
fd)
59 return _open_osfhandle(
reinterpret_cast<intptr_t
>(
fd), _O_RDONLY);
76void writeFull(
Descriptor fd, std::string_view
s,
bool allowInterrupts =
true);
96std::string drainFD(
Descriptor fd,
bool block =
true,
const size_t reserveSize=0);
112[[gnu::always_inline]]
118 return GetStdHandle(STD_INPUT_HANDLE);
125[[gnu::always_inline]]
131 return GetStdHandle(STD_OUTPUT_HANDLE);
138[[gnu::always_inline]]
144 return GetStdHandle(STD_ERROR_HANDLE);
157 AutoCloseFD(
const AutoCloseFD & fd) =
delete;
158 AutoCloseFD(AutoCloseFD&& fd)
noexcept;
160 AutoCloseFD& operator =(
const AutoCloseFD & fd) =
delete;
161 AutoCloseFD& operator =(AutoCloseFD&& fd);
163 explicit operator bool()
const;
205#if defined(_WIN32) && _WIN32_WINNT >= 0x0600
209std::wstring handleToFileName(
Descriptor handle);
214MakeError(EndOfFile, Error);
Definition file-descriptor.hh:152
void startFsync() const
Definition file-descriptor.cc:117
void fsync() const
Definition file-descriptor.cc:97
Definition file-descriptor.hh:181
This file defines two main structs/classes used in nix error handling.
Descriptor getStandardError()
Definition file-descriptor.hh:139
int Descriptor
Definition file-descriptor.hh:20
std::string readLine(Descriptor fd, bool eofOk=false)
Descriptor getStandardOutput()
Definition file-descriptor.hh:126
void closeOnExec(Descriptor fd)
Descriptor getStandardInput()
Definition file-descriptor.hh:113
void readFull(Descriptor fd, char *buf, size_t count)
return STDIN_FILENO
Definition lexer.l:3018
return STDOUT_FILENO
Definition lexer.l:3031
return s
Definition lexer.l:459
return STDERR_FILENO
Definition lexer.l:3044
size_t & count
Definition lexer.l:7012
std::string readFile() const
return fd
Definition lexer.l:2948
Definition serialise.hh:20
Definition serialise.hh:68
std::string Path
Definition types.hh:22