http://www.ruby-lang.org/ja/man/?cmd=view;name=%C1%C8%A4%DF%B9%F...
組み込み関数 - Rubyリファレンスマニュアル
URLは公式のRubyリファレンスWikiです。
Rubyには外部の関数を呼び出す組み込み関数execが存在します。
サンプルは以下のような感じです。
1.適当な外部プログラムを調達します。ここでは引数を表示するCを使ったプログラムを作成することにしてみます。(コンパイルしてarg.exeとしておく)
#include <stdio.h>
int main(int argc, char *argv[]){
int i;
for(i=1; i<argc; ++i)
printf("argv[%d] #=> %s¥n", i, argv[i]);
return 0;
}
実行例:
arg.exe foo bar
argv[1] #=> "foo"
argv[2] #=> "bar"
2. rubyスクリプトからarg.exeを起動します。(invoke.rbとする)
exec("arg.exe", "hoge", "moge")
実行例:
ruby invoke.rb
argv[1] #=> "hoge"
argv[2] #=> "moge"
外部プログラムのパスは相対パス、絶対パス、環境変数PATHから探す、のどれでも使えるようです。
また、パスの区切り文字は/でも¥でもよいみたいです。(後者の場合ちゃんとエスケープすること)
基本的には
system(’c:¥hoge space¥uge.exe arg1 arg2’)
というように記述しますが、
中に スペースが入っている場合は、工夫が必要です。
おお、別パターンの実現方法。ありがとうございます^^
回答1,2での挙動の違い等は自分で調べてみることにします。
お二人とも、ありがとうございました!
分かりやすい回答、ありがとうございます。