#include #include #include #include #include void writer() { std::osyncstream(std::cout) << "Writer started" << std::endl; std::ofstream pipe_write("/dev/wendy_in"); if (!pipe_write.is_open()) { std::cerr << "Cannot open pipe in" << std::endl; } std::ifstream txt("./make.txt"); if (!txt.is_open()) { std::cerr << "Canno open make.txt" << std::endl; } // pipe_write << "Hello from the other side\n"; pipe_write << txt.rdbuf(); std::osyncstream(std::cout) << "Writer ended" << std::endl; } void reader() { std::osyncstream(std::cout) << "Reader started" << std::endl; std::ifstream pipe_read("/dev/wendy_out"); std::osyncstream(std::cout) << "Reader read content: " << pipe_read.rdbuf(); std::osyncstream(std::cout) << "Reader ended" << std::endl; } int main() { std::thread writer_thread(writer); std::this_thread::sleep_for(std::chrono::milliseconds(100)); std::thread reader_thread(reader); if (reader_thread.joinable()) { reader_thread.join(); } if (writer_thread.joinable()) { writer_thread.join(); } return 0; }