AIX and Perl's SIGCHLD hates me and for my application I can't install install the signal handler without some very quirky problems in my application so I need another way besides wait() to know if my reader program was successful or not. I have some glue code that takes some options and opens up some reader programs (that I can't modify). Then it copies the stdout of the reader to perl's stdout like so.
open(INPIPE,"$reader_prog $options |") or die('Cant open reader'); while($bytes = read(INPIPE,$buffer,32768)){ print $buffer; }
I found that if it doesn't read any data I read 0 bytes from INPIPE. It could be that the reader will give me 0 bytes in a normal situation so I can't use the amount of data to determine success or not. Since the reader program was found but had some other error the die isn't triggered either. Is there any other way than SIGCHLD to get the reader's RC or know if it failed? Any other tricky ways I can infer if it failed or completed successfully? Stderr has to be left alone to be collected outside of my perl script. Any one have any experience working around broken SIGCHLD behavior?

In reply to Children and return codes by bot403

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.