2011-06-22 11 views
8

Czy istnieje sposób utworzenia unixa FIFO z językiem Go? Nie ma pakietu Mkfifo ani Mknod w zestawie, chociaż spodziewałem się, że nazwy FIFO są w dużej mierze używane w systemach posix. W rzeczywistości istnieje funkcja tworzenia nienazwanego FIFO (potoku), ale nie ma funkcji do tworzenia nazwanych potoków.Unix FIFO w go?

Czy jestem jedynym, który ich potrzebuje?

Odpowiedz

10

W celu uzyskania go do pracy w systemie Linux, po prostu zrobił

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

Wydawało rade.

Here jest referencją dla podstawowego wywołania mknod()

3

Jest Mkfifo, ale to w syscall -package :)

przeszukując źródła daje mi poczucie, że nie jest dostępny na cokolwiek, ale OS X i FreeBSD choć: http://www.google.com/codesearch#search&q=Mkfifo+package:http://go%5C.googlecode%5C.com

I don” t mieć maszynę unixową gotową do przetestowania. Możesz użyć cgo, jeśli chcesz zbudować pakiet interfejsu C, który wyeksportuje go dla Ciebie.

+0

Dzięki! I masz rację, na Linuxie jest napisane: 'undefined syscall.Mkfifo'. Tak, będzie czekać na wsparcie dla Linuksa. – zserge