Running C processes, where do I put the C file?

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 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

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.

Thanks!

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