【发布时间】:2015-12-14 13:41:30
【问题描述】:
我创建了一个虚拟文件系统,将其输出显示为只读命名管道(即S_IFIFO)。
就getattr而言,我的主机显示权限模式设置正确。但是,当我尝试打开管道时(例如,cat my_fuse_mount/my_pipe),它显然会这样做,但没有数据流。
我期待open-read-release 序列执行打开数据并将数据推送到命名管道所需的操作,但显然不是。当我在调试模式下运行时,FUSE 的日志似乎没有表明它正在尝试做任何事情。
什么 FUSE 操作/s 用于将数据推送到命名管道?
【问题讨论】:
-
尝试附加调试器并查看进程停止的位置。我不知道命名管道在 FUSE 文件系统上是如何工作的,但通常在 Linux 上打开管道时,open 调用会阻塞,直到另一个进程打开管道的另一端。