Смонтировать исполняемый файл как файл в файловой системе Linux / Unix - PullRequest
2 голосов
/ 27 февраля 2009

Можно ли сделать исполняемый файл похожим на файл только для чтения в Linux, чтобы при открытии «файла» для чтения файл фактически выполнялся и делал его стандартный вывод доступным для чтения, как если бы это были данные в «файле» ? Он должен быть открыт любой программой, которая знает, как открыть файл для чтения, например, 'cat'.

Ответы [ 4 ]

6 голосов
/ 27 февраля 2009

Посмотрите на popen. По сути, вы описываете трубу.

P.S. Если вам нужна помощь по конкретному языку, отредактируйте вопрос и добавьте язык / среду, в которой вы работаете, и я постараюсь предоставить дополнительную информацию.

4 голосов
/ 27 февраля 2009

Использование FUSE

2 голосов
/ 27 февраля 2009

В Unix-подобных ОС вы можете отправлять вывод программы в именованный канал, который открывается другой программой. Посмотрите на команду mkfifo, чтобы создать именованный канал. Именованный канал работает очень похоже на файл с некоторыми ограничениями. Например, он не доступен для поиска.

0 голосов
/ 27 февраля 2009

Похоже, вы могли бы перенаправить вывод программы во все, что вы используете для «чтения». Проблема в том, что если вы хотите открыть исполняемый файл, скажем, в emacs или vim или как угодно, это не вопрос исполняемого файла, поскольку редактор не знает другого способа его интерпретации.

...