2010-07-30 77 views
0

我有存储在服务器上的扩展名为.cpp的各种文件。当用户点击编译按钮时,我应该运行gcc命令将文件的绝对路径传递给gcc编译器,然后向用户显示文件的输出。
我该怎么做?控制器中的外部命令

+0

我认为这个问题是关于ruby而不是ruby-on-rails。 – giraff 2010-07-30 21:40:33

回答

1

Kernel.system可能是您正在查找的命令:它调用系统进程。例如:

if (system("gcc ...")) 
    @output_to_show = %x['./compiled'] 
end 

假设你的服务器是Linux/UNIX的,这将是很好的编译分开&为了降低安全风险(通过创建一个新的用户只是从网站服务器上执行过程这个目的)。或者你可以信任cpp-Files的内容吗?

+0

- “你可能想要在另一个用户标识下运行这些进程,只是为了确保它们不会覆盖你的一些难得的代码文件等......”......我无法理解这一点。你能稍微说一下吗? – 2010-07-30 21:44:56

+0

- 感谢您的帮助。 – 2010-07-31 05:45:31

+0

- 你能解释代码中的%x ['./ compiled']部分吗?如何在编译过程中得到输出/错误 – 2010-07-31 07:08:42