Named Pipes in Go for both Windows and Linux

倖福魔咒の 提交于 2019-11-30 04:07:47

问题


I am new to Go, I want to create Named Pipes implementation in Go which works on both Windows and Linux.

I managed to get the code working on Ubuntu, but this one does not work on Windows

Isn't there any abstraction in Go which allows you to work with Named Pipes in both environment

Below is piece of my code

//to create pipe: does not work in windows    
syscall.Mkfifo("tmpPipe", 0666)    

// to open pipe to write    
file, err1 := os.OpenFile("tmpPipe", os.O_RDWR, os.ModeNamedPipe)    

//to open pipe to read    
file, err := os.OpenFile("tmpPipe", os.O_RDONLY, os.ModeNamedPipe)

Any help or pointers would help a lot. Thanks


回答1:


According to https://github.com/golang/go/issues/3599

nate's package looks nice, and anyone can "go get" it.

A Windows named pipe implementation written in pure Go:
https://github.com/natefinch/npipe

Which has inspired (Win32 IO-related utilities for Go):
https://github.com/Microsoft/go-winio




回答2:


There is an implementation of named pipes for Windows in Go from Microsoft:

https://github.com/Microsoft/go-winio



来源:https://stackoverflow.com/questions/39407592/named-pipes-in-go-for-both-windows-and-linux

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!