是否可以在ruby文件中读取二进制文件并直接在内存中执行?
例如:
x = IO.read('/bin/ls')
execute(x)
我尝试了system(x)
,但它给出了:
ArgumentError: string contains null byte
答案 0 :(得分:1)
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
答案 1 :(得分:0)
我认为你无法做到这一点。当可执行文件启动时,动态链接器需要做很多修复链接。
最简单的解决方案是将可执行文件写入某个临时磁盘文件,并执行该文件。