2011-06-22 20 views
8

¿Hay alguna forma de crear un FIFO de Unix con Go language? No hay Mkfifo ni Mknod en el paquete os, aunque esperaba que los FIFO con nombre se utilicen principalmente en los sistemas operativos posix. De hecho, hay una función para crear un FIFO (pipe) sin nombre, pero no hay función para crear pipes con nombre.Unix FIFO in go?

¿Soy el único que los necesita?

Respuesta

10

Con el fin de conseguir que funcione en Linux, simplemente hicieron un

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

Parecía que hacer el truco.

Here es una referencia para la llamada subyacente mknod()

3

Hay una Mkfifo, pero es en el syscall -El paquete :)

Buscando a través de la fuente me da la sensación de que no está disponible en otra cosa que OS X y FreeBSD sin embargo: http://www.google.com/codesearch#search&q=Mkfifo+package:http://go%5C.googlecode%5C.com

I don' t tiene una máquina Unix lista para probar. Puede usar cgo si desea construir un paquete de interfaz C que lo exporte por usted.

+0

Gracias! Y tienes razón, en Linux dice: 'syscall.Mkfifo' indefinido. Por lo tanto, esperará el soporte de Linux. – zserge