Re: Need help with basic spawn command [message #54102 is a reply to message #54059] |
Tue, 22 May 2007 05:55  |
Trae
Messages: 23 Registered: May 2007
|
Junior Member |
|
|
Sorry for jumpiing on this thread late.
Why don't you use a combination of make_dll and call_external to have
IDL call your C code? I do a lot of number crunching in IDL and write
C codes to do much of the tedious but large jobs. These are the
procedures I use to get C an IDL to talk to each other.
The learning curve on these procedures is not bad and I've had great
success with them. It also sounds easier than what you are trying to
do with printf and if you are worried about time, nothing takes longer
than reading files. Call_external allows you to pass variables.
Cheers,
-Trae
Cheers,
On May 17, 9:32 am, ryans...@gmail.com wrote:
> On May 17, 2:45 am, Yi <yi.se...@gmail.com> wrote:
>
>
>
>> IDL's spawn procedure can't get the return value from C program.
>> Of course, you can get the result using second argument like this :
>
>> IDL> spawn, 'basic', result
>
>> In this case, the result variable is not the return value of main
>> function(C Program)
>> but the output text result of the 'basic' command in Shell(Unix) or
>> Command Prompt(MS Windows)
>
>> The 'result' variable is string array, so it can catch multi lines
>> text output.
>
>> Anyway, if you want to use spawn procedure, the C program should be
>> modified.
>
>> I expect that you can get result if you insert,
>
>> printf("%d", n);
>
>> into your C code.
>
>> On 5월17일, 오전7시34분, ryans...@gmail.com wrote:
>
>>> Im running IDL on XP.
>
>>> I have this basic C code:
>
>>> #include <stdlib.h>
>
>>> int main()
>>> {
>
>>> int n=5;
>>> n=n*2;
>>> return n;}
>
>>> //This file is basic.c
>
>>>> From IDL, I just want to call this program and return n.
>
>>> In IDL, I can write:
>
>>> SPAWN, 'basic' ; this of course runs the
>>> basic.c program.
>
>>> But this doesnt return anythingof course.. ive tried to add another
>>> variable after this line such as:
>>> SPAWN, 'basic', variable
>
>>> But windows doesnt like any of this...
>
>>> Can anyone help me with this basic application? With spawn in the past
>>> ive gotten it to do calculations on a variable and return them, but
>>> with no input, im unsure how to get the output.
>
>>> Thanks for any help! Ive also boughten the 'from c->dlm->idl' book but
>>> it wont be in for a few days.
>
> Thank you so much, I understand now! Your right that it works when
> adding a printf to the code with the result on the spawn.
>
> I was under the impression that this would not work on windows, only
> unix, not sure why, but it does.
|
|
|