是否可以使用FileStream
打开Linux FIFO作为非阻塞?
也希望能够通过用户代码关闭它,即使没有打开写入端。
尽管使用FileOptions.Asynchronous
,此代码会一直等到写侧打开
它位于.NET Core 2.0
和Debian jessie / macOS之上。
using System;
using System.IO;
namespace ReadFifo
{
internal class Program
{
private static void Main(string[] args)
{
var fifoPath = "/tmp/fifofile";
using (var fileStream = new FileStream(fifoPath, FileMode.Open, FileAccess.Read, FileShare.Write, 4096,
FileOptions.Asynchronous))
{
Console.WriteLine("FileStream opened.");
Console.ReadKey();
}
}
}
}
CoreFX implementation - GitHub
CoreFX test - GitHub
Debian FIFO(7) - 网页