“文件”是否可以按需生成其内容?

“文件”是否可以按需生成其内容?

有没有一种方法可以让我的内容显示为文件,但在读取时执行一些代码“即时”填充文件的内容?

类似于 FIFO/命名管道,但无需手动启动写入过程。

或者像网络服务器上的 CGI,但在本地文件系统上。

编辑:
为了防止自己“为什么我想要这个”-怀疑:
我希望它能够拥有一个音频文件,其内容是在访问时生成的,然后传递到音频播放器。并且它不应该是流式传输的,因为当音频播放器访问时,应该知道音频的长度。

答案1

如果您愿意进行一些编码,扇通知系统调用允许您编写一个程序,该程序将拦截对某个安装点下的任何文件的读取,并在返回数据之前替换或操作数据。请参阅man fanotifyC 代码示例。

或者,您可以安装一个保险丝文件系统,请参阅man fuse,它允许您通过用户空间程序实现文件系统。例如,curlftpfs(参见其手册页)将文件访问转换为curlftp 调用。

相关内容