pub(crate) fn pipe_cloexec() -> Result<(OwnedFd, OwnedFd), String>
CLOEXEC pipe as (read end, write end).