在Windows上如何使用文件描述符4(或等效文件描述符)?

I've been writing a Go server that acts as the child process of a chunk of Node.js.

package main

import (
    "bufio"
    "encoding/json"
    "fmt"
    "os"
)

// IPC delimiter
const EOT byte = 3

func main() {
    // Listen on stdin for messages sent from the parent process.
    reader := bufio.NewReader(os.Stdin)
    for {
        input, err := reader.ReadString(EOT)
        if err != nil {
            fmt.Printf("sockets: failed to read from stdin: %v", err)
            if err == io.EOF {
                return
            }

            continue
        }

        // Strip EOT bye
        input = input[:len(input) - 1]

        var payload Payload
        if err := json.Unmarshal([]byte(input), &payload); err != nil {
            fmt.Printf("sockets: failed to read from stdin: %v", err)
            continue
        }
    }
}

However, using stdin/stdout like this prevents this piece of the code from being able to log to console, as the parent process is using stdouts handle. Ideally I'd use file descriptor 4 for this to take advantage of how Node uses it, Only problem with this is I'm clueless with the nitty gritty details of Windows. How might I be able to use the equivalent (if any) of /dev/fd/4 for IPC on Windows?

PS: if there's a better way to handle reading from stdin, that would also help me a lot.

You can try os.NewFile:

f := os.NewFile(4, "my_fd_4")