J'ai écrit un serveur Go qui agit comme le processus fils d'un morceau de Node.js.Comment utiliser le descripteur de fichier 4 (ou son équivalent) sous Windows?
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
}
}
}
Cependant, en utilisant stdin/stdout comme celui-ci empêche ce morceau de code d'être en mesure de se connecter à la console, comme le processus parent utilise stdouts poignée. Idéalement, j'utiliserais le descripteur de fichier 4 pour que cela profite de la façon dont Node l'utilise. Seul problème avec ceci, c'est que je suis complètement dépourvu des détails de Windows. Comment pourrais-je utiliser l'équivalent (le cas échéant) de/dev/fd/4 pour IPC sous Windows? PS: s'il y a une meilleure façon de gérer la lecture à partir de stdin, cela m'aiderait aussi beaucoup.
Existe-t-il des répertoires spécifiques, il doit être placé ou sont couramment utilisés? – kpimov
Vous posez des questions sur le nom? Je ne sais pas vraiment si le nom signifie quelque chose. Essayez de le laisser vide et voyez ce qui se passe. –