[Ruby] (no subject)
Eugene Scripnik
Eugene.Scripnik at itgrp.net
Tue Mar 4 12:31:32 MSK 2003
Кирилл Шутемов wrote:
> Я вставил в место, где должен выполняться скрипт следующий текст:
> ruby_init();
> ruby_script("embedded");
> rb_load_file("test.rb");
> ruby_run();
> скрипт test.rb правильно отрабатывает, но после этого программа сразу завершается. Как c этим бороться?
Дело в том, что как уже написали ruby_run() завершает выполнение
программы. Он в принципе не нужен. Достаточно перенести весь выполняемый
код в отдельную функцию (чтоб при запуске GC он смог нормально почистить
неиспользуемые объекты) и добавить ruby_init_loadpath() (чтоб можно
было использовать стандартные библиотеки):
void start_my_ruby() {
rb_load_file("test.rb");
// Остальной код
}
int main(...) {
ruby_init();
ruby_script("embedded");
ruby_init_loadpath();
start_my_ruby();
return 0;
}
Если будет использоваться только rb_load_file и в main не будут
создаваться ruby-объекты (VALUE), то можно обойтись и без start_my_ruby.
--
Eugene Scripnik
IT Group
Software Architect
Tel./Fax +380 (372) 58-43-10
email: Eugene.Scripnik at itgrp.net
http://www.itgrp.net/
More information about the Ruby
mailing list