Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将可执行文件作为文件装载到Linux/Unix文件系统上_Linux_File_Executable - Fatal编程技术网

将可执行文件作为文件装载到Linux/Unix文件系统上

将可执行文件作为文件装载到Linux/Unix文件系统上,linux,file,executable,Linux,File,Executable,是否有可能在Linux上使可执行文件看起来像只读文件,这样打开“文件”进行读取实际上会执行该文件,并使其标准输出可供读取,就好像它是“文件”中的数据一样?它应该可以被任何知道如何打开文件进行读取的程序打开,例如“cat”。查看popen。基本上你描述的是一个管道 另外,如果您需要特定于语言的帮助,请编辑问题并添加您正在使用的语言/环境,我将尝试提供更多详细信息。在类似unix的操作系统上使用,您可以将程序的输出发送到另一个程序打开的命名管道。查看mkfifo命令以创建命名管道。命名管道的工作方式

是否有可能在Linux上使可执行文件看起来像只读文件,这样打开“文件”进行读取实际上会执行该文件,并使其标准输出可供读取,就好像它是“文件”中的数据一样?它应该可以被任何知道如何打开文件进行读取的程序打开,例如“cat”。

查看
popen
。基本上你描述的是一个管道


另外,如果您需要特定于语言的帮助,请编辑问题并添加您正在使用的语言/环境,我将尝试提供更多详细信息。

在类似unix的操作系统上使用,您可以将程序的输出发送到另一个程序打开的命名管道。查看mkfifo命令以创建命名管道。命名管道的工作方式非常类似于文件,但有一些限制。例如,它是不可查找的。

似乎可以通过管道将程序的输出传输到用于“读取”的任何内容中。问题是,如果您想在emacs或vim或其他任何程序中打开可执行文件,这与可执行文件无关,因为编辑器不知道任何其他解释方法。

?他想要可执行文件的输出。“/proc”filesystem”会有什么帮助呢?他说“这样打开“文件”进行读取实际上会执行文件并“使其stdout可用于读取”,这不是一个管道,也不像/proc(因为它在内核空间中运行),但是……你说得对,dmckee,我不是在寻找管道。我想要的东西可以被任何知道如何打开文件进行读取的任意程序打开。我应该在我的问题中说得更清楚。kbluck——命名管道可以从任何知道如何打开文件进行读取的任意程序中打开。没错,但我是在回应您最初对popen的建议。命名管道仍然不符合我的要求,因为打开管道的读取端不会自动执行进程并将其连接到管道的写入端。我认为每次打开文件时启动程序的唯一方法是FUSE。