是否可以创建一个从程序获取其内容的文件?

是否可以创建一个从程序获取其内容的文件?

在 Linux 中,是否可以创建一个文件,在读取该文件时,从可执行程序中获取其内容?

具体来说,假设我有一个程序date。是否可以通过读取文件(使用类似的方法cat date_file)获取该程序的输出?

例如,如果这是可能的:

$ date
05/06/18 22:51:24 UTC-7:00

…30 sec later…

$ date
05/06/18 22:51:54 UTC-7:00

这可能吗?

$ cat date_file
05/06/18 22:51:24 UTC-7:00

…30 sec later…

$ cat date_file
05/06/18 22:51:54 UTC-7:00

如果可能的话,我该如何实现这一目标?

我知道有 Linux/Unix 设备文件,但我不确定它们是否适用于此。

提前致谢!

答案1

不,您所问的问题(正如您所问的那样)是不可能的。读取文件是一种操作系统调用,不允许将程序作为此行为的一部分来执行。

一些可能帮助你实现目标的东西可能是命名管道。命名管道将允许您创建一个虚拟文件(使用 mkfifo)。如果您有一个输出到该文件的程序,则另一个不同的程序可以从中读取。

当然,可以将命令评估到文件或命令行中,并得到一个带有“变量”的文件,然后可以使用另一个程序替换它。

相关内容