raw_stdpipes 1.0.0

Raw handles to the standard terminal pipes.
Documentation
use super::File;
use std::os::windows::io::FromRawHandle;
use std::os::windows::raw::HANDLE;
use libc::c_ulong as DWORD;
// use winapi::um::processenv::GetStdHandle;

extern "system" {
    fn GetStdHandle(x: DWORD) -> HANDLE;
}

const STD_INPUT_HANDLE: DWORD = -10i32 as DWORD;
const STD_OUTPUT_HANDLE: DWORD = -11i32 as DWORD;
const STD_ERROR_HANDLE: DWORD = -12i32 as DWORD;

pub unsafe fn raw_stdin() -> File {
    File::from_raw_handle(GetStdHandle(STD_INPUT_HANDLE))
}

pub unsafe fn raw_stderr() -> File {
    File::from_raw_handle(GetStdHandle(STD_ERROR_HANDLE))
}

pub unsafe fn raw_stdout() -> File {
    File::from_raw_handle(GetStdHandle(STD_OUTPUT_HANDLE))
}