Go语言中的Unix FIFO?

12

有没有一种使用Go语言创建unix FIFO的方法?尽管我期望在posix操作系统中命名FIFO被广泛使用,但os包中没有MkfifoMknod。实际上,有一个用于创建无名FIFO(管道)的函数,但没有用于创建命名管道的函数。

难道只有我需要它们吗?

2个回答

13

为了在Linux上让它工作,我只需要执行了

syscall.Mknod(fullPath, syscall.S_IFIFO|0666, 0)

看起来这个方法似乎能起到作用。

这里提供了底层的mknod()调用的参考文献。


3

谢谢!你说得对,在Linux上它显示为“undefined syscall.Mkfifo”。所以,我会等待Linux支持。 - zserge
1
仅供更新,syscall.Mkfifo(以及unix.Mkfifo)现在已经存在于Go支持的大多数操作系统中(值得注意的例外是Windows和Plan9)。此外,应优先使用syscallgolang.org/x/sys/unix(带有适当的构建约束条件),而不是cgo - Dave C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接