Hello Wise Monks,

I have a C program that constantly returned the % of the job completed to my Perl script so to execute this program I have these lines:

use IO::Handle; $| = 1; $data1 = "./myC.exe 10 10 1 abc"; open PS, "$data1 |"; PS->autoflush(1); while ($line = readline(*PS)) { print $line; print "\n"; }

I have noticed that the results are only returned to my Perl script after my C program are completed and not while it is running. The C program usually takes about 10 hours to complete and every half an hour or so it prints to STDOUT how many percent of the job has been completed so that the Perl script can take it and push it to the web page. I have tried

use IO::Handle; $| = 1; $data1 = "./myC.exe 10 10 1 abc"; open PS, "$data1 |"; PS->autoflush(1); while (<PS>) { print; print "\n"; }

but no luck. It appeared that the result are buffered or stucked somewhere while the C program is running and only get returned to my Perl script after the C program exited. Any help would be appreciated.

Thanks in advance.

Code tags added by GrandFather


In reply to Pipe Problem by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.