It seems like [the fork] is trying to goto the middle of a while loop, which I thought was impossible. Can anyone help me out here?

Imagine it this way: Look at your code. Pretend that immediately after the fork, a layer of clear paper, representing the child process, has been set down over your code. Both pages have a moveable marker on them, right after the fork. Now, the markers, which represent program execution flow, proceed independently. On the original page, the fork has succeeded and returned a child process id*, so the next if test directs execution back to the while loop expression. On the new clear page, however, the fork as return 0, the next if test fails, and execution proceeds until the exit is reached. The fact that you're in a loop is incidental.


*Two problems here: First, it's possible for fork() to return undef if it wasn't possible to fork. Second, if fork() does succeed, you'll want to save the child process so that you can reap it when the child process exits. See perlipc in the on-line Perl docs for the full story plus examples.


In reply to Re: Forking and loops: A plea for understanding. by dws
in thread Forking and loops: A plea for understanding. by BUU

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.