2011-06-22 18 views
8

C'è un modo per creare un FIFO unix con la lingua Go? Non c'è Mkfifo, né Mknod nel pacchetto os, sebbene mi aspettassi che i FIFO nominali siano largamente usati nei sistemi POS. Infatti, esiste una funzione per la creazione di un FIFO senza nome (pipe), ma nessuna funzione per la creazione di named pipe.Unix FIFO in go?

io sono l'unico che ha bisogno di loro?

risposta

10

Al fine di farlo funzionare su Linux, ho semplicemente fatto un

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

è sembrato fare il trucco.

Here è un riferimento per la sottostante chiamata mknod()

3

C'è un Mkfifo, ma è nel syscall -package :)

La ricerca attraverso la fonte mi dà la sensazione che non è disponibile su qualsiasi cosa, ma OS X e FreeBSD però: http://www.google.com/codesearch#search&q=Mkfifo+package:http://go%5C.googlecode%5C.com

I don' t avere una macchina UNIX pronta per il test. Puoi utilizzare cgo se desideri creare un pacchetto C-interface che lo esporti per te.

+0

Grazie! E hai ragione, su Linux dice: 'syscall.Mkfifo' non definito. Quindi, aspetterò il supporto per Linux. – zserge