有没有办法让我可以将某些内容显示为文件,但是在读取时会执行一些代码来“动态”填充文件的内容?
类似于 FIFO/命名管道,但无需手动启动写入过程。
或者像网络服务器上的 CGI,但在本地文件系统上。
编辑:
为了防止“我为什么想要这个”-疑虑:
我希望它能够拥有一个音频文件,其内容在访问时生成,然后传送到音频播放器。它不应该是流媒体,因为当音频播放器访问时,音频的长度应该是已知的。
meu*_*euh 11
如果您愿意进行一些编码,fanotify系统调用允许您编写一个程序,该程序将拦截对某个挂载点下的任何文件的读取,并在返回数据之前替换或操作数据。参见man fanotify示例 C 代码。
或者,您可以挂载保险丝文件系统,请参阅man fuse,它允许您通过用户空间程序实现文件系统。例如,curlftpfs(参见其手册页)将文件访问转换为curlftp 调用。