Hi there I make a call jsut like this: value = `./simulated_annealing` Which is a C Object file, but Rails tells me it cannot find that file. I put it in the same dir that the rest of the models files (since it''s called by one of those models), but I guess it should be in any other place. What do I have to do? -- Posted via http://www.ruby-forum.com/.
Frederick Cheung
2009-Nov-07 14:03 UTC
Re: Running C processes, where do I put the C file?
On Nov 7, 12:24 pm, Victor Martin <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Hi there > > I make a call jsut like this: > > value = `./simulated_annealing` > > Which is a C Object file, but Rails tells me it cannot find that file. I > put it in the same dir that the rest of the models files (since it''s > called by one of those models), but I guess it should be in any other > place. > > What do I have to do?What the current directory is might depend on how you start the app, but in general it is the top level of your app. Either chdir to the folder containing your binary, use an absolute path or specify the path relative to the current directory. Fred> -- > Posted viahttp://www.ruby-forum.com/.
Frederick Cheung wrote:> What the current directory is might depend on how you start the app, > but in general it is the top level of your app. Either chdir to the > folder containing your binary, use an absolute path or specify the > path relative to the current directory. > > > FredOh, I feel stupid. I just ran a "ls" command and it''s just as you say, it''s in the top level. Thanks! -- Posted via http://www.ruby-forum.com/.
Marnen Laibow-Koser
2009-Nov-07 15:52 UTC
Re: Running C processes, where do I put the C file?
Victor Martin wrote:> Frederick Cheung wrote: > >> What the current directory is might depend on how you start the app, >> but in general it is the top level of your app. Either chdir to the >> folder containing your binary, use an absolute path or specify the >> path relative to the current directory. >> >> >> Fred > > Oh, I feel stupid. I just ran a "ls" command and it''s just as you say, > it''s in the top level.File.dirname(__FILE__) is great for constructing absolute paths on the fly.> > Thanks!Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/.
Victor Martin wrote:> Hi there > > I make a call jsut like this: > > value = `./simulated_annealing` > > Which is a C Object file, but Rails tells me it cannot find that file. I > put it in the same dir that the rest of the models files (since it''s > called by one of those models), but I guess it should be in any other > place. > > What do I have to do?Hi Victor, Best option is to use absolute path for running the program. For ex., you can create a directory "bin" under your rails application top level directory. Place your program under "bin" directory. Then you can execute the program something like - cmd = "#{RAILS_ROOT}/bin/cbin arg1 arg2" value = `#{cmd}` Thanks -- Prasad http://roorky.com Interactive Programming Books -- Posted via http://www.ruby-forum.com/.