On Tue, 2002-03-26 at 01:14, Ahmed Moustafa wrote: > Jim Conner wrote: > > At 20:28 03.25.2002 -0800, Ahmed Moustafa wrote: > > > >>> Jim Conner wrote: > >>> > >>>> I suck at this kind of topic but the only way I can think of doing > >>>> such a thing is this: > >>>> > >>>> Use IPC. > >>>> > >>>> fork off something like 10 children each child working on a separate > >>>> file and use sysvmsg sysvshem (I do not believe these are functions > >>>> and I can't look the right functions up for you right now but > >>>> perldoc perlipc might be of some use) to pass messages back and > >>>> forth between the children and the parent to follow what each > >>>> process is doing. > >>> > >>> > >>> 'fork' spawns a child process of the parent, doesn't it? > >> > >> > >> I mean the child is a clone of the parent, isn't? > > > > > > Yes; from the point where the fork occurs. > > So, how can a new different process by forked? Or, how a function be > called and the next step execute without waiting for the previous > function to terminate?
Fork returns 0 to the child process and the pid of the child process to the parent. This allows you to say things like my @children; #loop while get_filename retruns a vaild filename #this could easily be a foreach loop of @filenames while (my $filename = get_filename()) { my $forked = fork; #fork into two processes(parent and child) #if $forked is undef then fork failed unless (defined $forked) { warn "something went wrong with fork"; next; } #push the PID of the child onto a stack push @children, $forked; #meaningless for child next if $forked; #parent loops #only the child can get here encrypt_the_file($filename); #child ends execution here exit 0; } #reap the children to avoid zombies waitpid $_ for (@children); -- Today is Setting Orange the 12nd day of Discord in the YOLD 3168 Keep the Lasagna flying! Missile Address: 33:48:3.521N 84:23:34.786W -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]