2011-06-22 4 views
8

Existe-t-il un moyen de créer un fichier FIFO unix avec la langue Go? Il n'y a pas de Mkfifo, ni de Mknod dans le paquet os, bien que je m'attendais à ce que les FIFO nommés soient largement utilisés dans les SE POSIX. En fait, il existe une fonction pour créer un FIFO sans nom (pipe), mais pas de fonction pour créer des pipes nommés. Suis-je le seul à en avoir besoin?Unix FIFO dans go?

Répondre

10

Pour le faire fonctionner sous Linux, j'ai simplement fait un

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

Il semblait faire l'affaire. Est une référence pour l'appel mknod() sous-jacent

3

Il y a un Mkfifo, mais il est dans le syscall -package :)

Recherche par la source me donne le sentiment qu'il est pas disponible sur quoi que ce soit, mais OS X et FreeBSD si: http://www.google.com/codesearch#search&q=Mkfifo+package:http://go%5C.googlecode%5C.com

Je ne t avoir une machine unix prête à tester avec. Vous pouvez utiliser cgo si vous souhaitez créer un package C-interface qui l'exporte pour vous.

+0

Merci! Et vous avez raison, sur Linux, il est dit: 'undefined syscall.Mkfifo'. Alors, attendra le support de Linux. – zserge