Hamigaki.Process
Windows版のHamigaki.Processを作りました。
今日の成果物
とりあえず必要最低限の機能だけです。
機能の例はおおよそこうなります。
#include <hamigaki/process/child.hpp> #include <iostream> namespace proc = hamigaki::process; int main() { try { proc::ipc_map ipc; ipc.stdin_behavior(proc::capture_stream()); ipc.stdout_behavior(proc::capture_stream()); // stderr -> stdout のリダイレクトは未実装なので、とりあえずNUL ipc.stderr_behavior(proc::silence_stream()); proc::child c("C:\\Windows\\System32\\sort.exe", ipc); // ここで子プロセスのメインスレッドのハンドルは閉じている proc::pipe_sink& sink = c.stdin_sink(); sink.write("one\r\ntwo\r\nthree\r\n", 17); sink.close(); proc::pipe_sink& src = c.stdin_source(); // 読み出しは面倒なので略 c.wait(); // ここで子プロセスのハンドルが閉じられる } catch (const std::exception& e) { std::cerr << "Error: " << e.what() << std::endl; } }
見ての通り、かなりいい加減なので、明日以降インタフェースが大幅に変更される可能性大です。