From 4bf68ddb0671c0211f69a75e44b24b70efdd4502 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Thu, 22 Jun 2023 17:38:39 +0200 Subject: [PATCH] Use _pipe on Windows --- src/dwarfs/filesystem_extractor.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/dwarfs/filesystem_extractor.cpp b/src/dwarfs/filesystem_extractor.cpp index 2e2690ad..f2f5c592 100644 --- a/src/dwarfs/filesystem_extractor.cpp +++ b/src/dwarfs/filesystem_extractor.cpp @@ -111,9 +111,15 @@ class filesystem_extractor_ final : public filesystem_extractor::impl { } void open_stream(std::ostream& os, std::string const& format) override { +#ifdef _WIN32 + if (::_pipe(pipefd_, 8192, _O_BINARY) != 0) { + DWARFS_THROW(system_error, "_pipe()"); + } +#else if (::pipe(pipefd_) != 0) { DWARFS_THROW(system_error, "pipe()"); } +#endif iot_ = std::make_unique( [this, &os, fd = pipefd_[0]] { pump(os, fd); });