On 25 Jun, 03:43, [EMAIL PROTECTED] (Zentara) wrote:
> On Tue, 24 Jun 2008 16:44:47 -0700 (PDT), [EMAIL PROTECTED] (shorti)
> wrote:
>
> >Hello, I am a C coder but new to Perl.  I am running in an AIX
> >environment.  I was wondering if there was a Perl way to return string
> >data (or larger int values) to a C program?  For instance, if I use
> >the command :
>
> >ps aux | grep process123 my out put would look like this:
>
> >emextra     45304  0.0  0.0 7344 6120      - A    20:08:01  0:00
> >process123
> >I want to retrieve the 2nd and 5th columns of the output.  I *think* I
> >can figure out a way for Perl to get these columns but is there a way
> >to return these values to my C program?
>
> >Any advise would be appreciated
>
> Use IPC::Open3 and do what is needed. You can get the output,
> regex it, and feed the results back to the C program, IIUYC.
>
> #!/usr/bin/perl
> use warnings;
> use strict;
> use IPC::Open3;
>
> #interface to "bc" calculator
> #my $pid = open3(\*WRITE, \*READ, \*ERROR,"bc");
> my $pid = open3(\*WRITE, \*READ,0,"bc");
>             #if \*ERROR is false, STDERR is sent to STDOUT
> while(1){
> print "Enter expression for bc, i.e. 2 + 2\n";
> chomp(my $query = <STDIN>);
>
> #send query to bc
> print WRITE "$query\n";
>
> #give bc time to output
> select(undef,undef,undef,.5);
>
> #get the answer from bc
> chomp(my $answer = <READ>);
> print "$query = $answer\n";
>
> }
>
> waitpid($pid, 1);
> # It is important to waitpid on your child process,  
> # otherwise zombies could be created.
> __END__
>
> --
> I'm not really a human, but I play one on 
> earth.http://zentara.net/CandyGram_for_Mongo.html

Forgive me,  Zentara, but this doesnt appear to show how to feed the
results back to C.  It would seem that I would have to run the script
via a system() call.  I still am not sure how to get the $answer info
back to the C program.


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to