[英]Calling shell command to run C++ code from Ruby
我有一个编译的c ++文件,我想在ruby的临时目录中运行:
folder = Dir.mktmpdir
begin
puts folder
File.open("#{folder}/input.xml", 'w') { |file| file.write(builder.to_xml) }
ensure
system '.././program'
FileUtils.remove_entry folder
end
上面的代码正确创建了所有所需的文件/文件夹,但没有运行系统调用,也不会产生错误。 我尝试了这里列出的所有功能: 从Ruby调用shell命令,但似乎无法使其正常运行。 如果我注释掉文件删除行并手动执行上面列出的命令,该程序将正常运行。 另外,如果我将文件保存到./program所在的位置,则./program也可以工作。 是什么使我无法从子文件夹运行命令?
也许系统找到一个程序的名称是.././program
尝试反引号运算符或%x函数
puts `.././program`
puts %x{.././program}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.