在Ubuntu服务器上通过ruby脚本启动C可执行文件

时间:2013-08-16 03:05:45

标签: ruby-on-rails c ruby ubuntu

我有一个情况我需要一些帮助。它涉及ruby,rails和在Ubuntu服务器上运行的本机c应用程序。

我能够在服务器上编译c应用程序,现在需要知道如何通过ruby脚本启动它们。

我的最终目标是从rails应用程序中获取数据列表,将它们保存到服务器上的特定.dat文件中,使用此文件作为我的可执行文件的输入(以及标志),然后加载生成的文件通过ruby脚本进入我的rails应用程序进行显示。

我正在考虑开始这些:

Confirm existance of executable (script, bat, cmd, exe) via a ruby file

Launch a script on a separate server from a Rails app

Confirm existance of executable (script, bat, cmd, exe) via a ruby file

Ruby require_relative executing script?

如果有人做过这样的事情或者有如何做的想法,请告知。

1 个答案:

答案 0 :(得分:3)

你可以这样做

original_file_path = 'path/to/original_file.dat'
modified_file_path = 'path/to/modified_file.dat'

File.write(file_path, 'data')

#this will return an output from c program
#use this if you need to parse output from c program
result = `some_c_executable --some_flag #{file_path}`
#parsing result...
data = File.read(modified_file_path)
#work with data

或者

#if you don't need output from c program, use "system"
#it returns you true or false according to success
result = system "some_c_executable --some_flag #{file_path}"
if result
  data = File.read(modified_file_path)
  #work with data
else
  ...
end