Raymond Wan wrote:
>
> Thank you very much for your reply! I've actually been stuck on this
> for a while...but with little knowledge about forking processes, I was a
> quite stuck.
>
> John W. Krahn wrote:
>> perldoc -f times
>
> Ah, didn't know about that. I thought to get user time, you had to run
> something (say, /usr/bin/time) from a parent shell...i.e., you can't
> tell what is your own user time. Thanks for this!
>
>>> $SIG{CHLD} = 'IGNORE';
>> Your problem appears to be this line. When you run:
>>
>> exec '/usr/bin/time --output=time.txt ls &'
>
> Ah, I see. I was following directions elsewhere
> (http://perldoc.perl.org/perlfaq8.html#How-do-I-start-a-process-in-the-background%3f),
>
> and its comments about Zombies. I guess I wanted to "reap" the child
> processes, but in doing so, lost track of the process that I want to
> time? (I'm not so sure about this statement...)
>
> I gave what you suggested a try and it works, but I now have a Zombie
> process. They also suggest a "double fork" solution, which seems like
> it will give the best of both worlds...no zombies and I should be able
> to time it... I'll try that now...thanks a lot -- it did help me
> understand the code I had taken from the FAQ.
What do you need to accomplish that something as simple as the code below won't
do?
Rob
use strict;
use warnings;
my $kid = fork;
if ($kid) {
print "in parent whose kid is $kid\n";
}
elsif ($kid == 0) {
print "In child\n";
my ($usertime) = times;
print "$usertime seconds\n";
}
else {
die "Cannot fork: $!\n";
}
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/