Ruby: выполнить двоичный файл в памяти? - PullRequest
1 голос
/ 01 апреля 2010

Можно ли прочитать двоичный файл в файле ruby ​​и выполнить его непосредственно в памяти?

например что-то вроде этого:

x = IO.read('/bin/ls')
execute(x)

Я пытался system(x), но это дает: ArgumentError: string contains null byte

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

system () и exec () передают командную строку операционной системе, чтобы она загрузилась и запустила внешнюю команду, а это не то, что вы просите.

Что-то может быть написано на C, так как это расширение Ruby. Много информации в Google:

http://www.google.com/search?client=safari&rls=en&q=extend+ruby+with+c&ie=UTF-8&oe=UTF-8

0 голосов
/ 02 апреля 2010

Я не думаю, что вы сможете это сделать. Когда исполняемый файл запускается, динамическому компоновщику требуется довольно много исправлений.

Самое простое решение - записать исполняемый файл во временный файл на диске и выполнить его.

...