我想创建一个特殊的文件,其中的内容将在读取时生成,并在写入时进行处理。应该有一个后台进程处理该文件。管道不是首选,因为它不允许双频(同时读/写)。两个命名管道看起来不错,但它们是两个文件而不是一个。我想要的很像字符设备文件或/sys
.我怎样才能这样做呢?
答案1
只要您只想读取和写入流(一个字符一个字符),您就可以使用伪终端。这基本上就像一个双面管道,其中只有一侧(“从属”)在文件系统(如/dev/pts/X
)中可见,而另一侧(“主”)对创建它的程序可见。它有一些额外的东西,例如顶部的线路规则和串行参数,您可以忽略它们。
创建伪终端有两种方法,更现代的是使用openpty
然后select
在主控端。man openpty
详情请参阅。谷歌应该提供一些示例程序。