2011-06-22 58 views
8

Có cách nào để tạo ra một FIFO unix với ngôn ngữ Go? Không có Mkfifo, cũng như Mknod trong gói os, mặc dù tôi dự kiến ​​có tên FIFO được sử dụng rộng rãi trong hệ điều hành posix. Trong thực tế, có một hàm để tạo một FIFO chưa được đặt tên (đường ống), nhưng không có hàm để tạo các đường ống có tên.Unix FIFO đang hoạt động?

Tôi có phải là người duy nhất cần chúng không?

Trả lời

10

Để có được nó để làm việc trên Linux, tôi chỉ đơn giản là đã làm một

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

Nó dường như làm các trick.

Here là tham chiếu cho mknod bên dưới() gọi

3

Có một Mkfifo, nhưng đó là trong -package syscall :)

Tìm kiếm thông qua các nguồn mang lại cho tôi cảm giác nó không có sẵn trên bất cứ điều gì nhưng OS X và FreeBSD mặc dù: http://www.google.com/codesearch#search&q=Mkfifo+package:http://go%5C.googlecode%5C.com

I don' t có một máy unix sẵn sàng để thử nghiệm với. Bạn có thể sử dụng cgo nếu bạn muốn xây dựng gói giao diện C để xuất gói cho bạn.

+0

Cảm ơn! Và bạn là đúng, trên linux nó nói: 'undefined syscall.Mkfifo'. Vì vậy, sẽ chờ hỗ trợ Linux. – zserge

Các vấn đề liên quan