[sf-perl] Async or Sync

David Alban extasia at extasia.org
Sat Mar 10 10:48:28 PST 2007


       system LIST
       system PROGRAM LIST
               Does exactly the same thing as "exec LIST", except that a fork
               is done first, and the parent process waits for the child
               process to complete.  Note that argument processing varies
               depending on the number of arguments.  If there is more than
               one argument in LIST, or if LIST is an array with more than one
               value, starts the program given by the first element of the
               list with arguments given by the rest of the list.  If there is
               only one scalar argument, the argument is checked for shell
               metacharacters, and if there are any, the entire argument is
               passed to the system's command shell for parsing (this is
               "/bin/sh -c" on Unix platforms, but varies on other platforms).
               If there are no shell metacharacters in the argument, it is
               split into words and passed directly to "execvp", which is more
               efficient.

    [...]

On 3/10/07, Neil Heller <nheller at silcon.com> wrote:
> When I launch a program from within a Perl script via a "system" call, is
> the return asynchronous or synchronous?

I believe "waits for the child to complete" answers this question.

> Is there any way to specifically
> control that from within the calling script?

fork() and exec()?

Call system() with a command ending in ampersand (to get asynchronous behavior)?

Call system() with a command that will itself call other things
asynchronously (and thus, has the potential to return right away)?

-- 
Live in a world of your own, but always welcome visitors.


More information about the SanFrancisco-pm mailing list