[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