Sponsored Content
Full Discussion: Perl fork
Top Forums Shell Programming and Scripting Perl fork Post 302334840 by pludi on Thursday 16th of July 2009 04:22:40 PM
Old 07-16-2009
Option 1: fork twice (pseudocode)
Code:
fork()
  if child: first()
fork again()
  if child: second()
third();

Option 2: remember how many forks you've done in an array (no guarantee on correctness):
Code:
@a=();
while(scalar @a < 3){
    $pid=fork();
    push @a,$pid;
    first() if $pid==0 && scalar @a==1;
    second() if $pid==0 && scalar @a==2;
    third() if $pid==0 && scalar @a==3;
}

Personally, I think the first one is better in terms of readability.
 

10 More Discussions You Might Find Interesting

1. Programming

fork()

#include <stdio.h> #include <string.h> #include <sys/types.h> #define MAX_COUNT 200 #define BUF_SIZE 100 void main(void) { pid_t pid; int i; char buf; fork(); pid = getpid(); for (i = 1; i <= MAX_COUNT; i++) { sprintf(buf,... (2 Replies)
Discussion started by: MKSRaja
2 Replies

2. Programming

Fork or what?

Hello all. I'm developing a filetransfer application, which is supposed to work sort of like dcc, with multiple transfers etc. Now i wonder what the best way to manage the transfers is. Should i fork() for each new transfer, hogging loads of memory or use pthreads? Maybe I can use select to see... (0 Replies)
Discussion started by: crippe
0 Replies

3. Programming

Fork ()

hi all About this code for (i = 1; i < n; i++) if ((childpid = fork()) <= 0) break; I really can't understand the output . and the way fork () return the value . how about the process Id ,the child process Id and the parent ID in this case so please answer me soon (5 Replies)
Discussion started by: iwbasts
5 Replies

4. Programming

fork() help

Hi everybody, I wanna write a code to understand how fork works. my target -------------- -Parent creates a file(called temp) and writes into this file "1".Then it closes the file. -Then parent creates a child and wait until execution of this child ends. -Then child opens the same... (3 Replies)
Discussion started by: alexicopax
3 Replies

5. Shell Programming and Scripting

new to perl.. how do I do this ? fork/ threads ?

I have never coded in perl before (just started today morning :). I need to write a perl program to automate a task. Here is how I do it manually: Start a program in my home dir. Now if I want to execute another program while this one is still running, what I would do is go to another... (6 Replies)
Discussion started by: the_learner
6 Replies

6. UNIX for Dummies Questions & Answers

fork()

I'm trying to run a simple test on how to use fork(), i'm able to execute the child process first then the parent, but how can I execute parent then child..? Thanks! (1 Reply)
Discussion started by: l flipboi l
1 Replies

7. Shell Programming and Scripting

fork in perl

Can someone tell me perl fork example please. I tried online but could not get proper documentation. (2 Replies)
Discussion started by: Anjan1
2 Replies

8. Shell Programming and Scripting

fork in perl

Hi, I have a file which has some 50 hosts, I want to login to each host using ssh and execute any command. I am using fork function in perl. I am able to login to each host and execute the command in the hosts paralelly, but it spawing/forking 50 processes at a time. It will consume the cpu... (5 Replies)
Discussion started by: Anjan1
5 Replies

9. Programming

Fork!

I understand that fork create a child but I need very simple example that make child useful.... I mean how will make the program faster anyone explain with code plz using C plz (2 Replies)
Discussion started by: fwrlfo
2 Replies

10. Shell Programming and Scripting

Need explanation on Perl Fork

Hi, I am breaking my head to understand the below line of code in perl: next if $pid = fork; # Parent goes to next server. die "fork failed: $!" unless defined $pid; Can anyone please explain me in detail as I am a slow learner? Thanks, Ali. (2 Replies)
Discussion started by: liyakathali
2 Replies
Ns_Exec(3aolserver)					   AOLserver Library Procedures 				       Ns_Exec(3aolserver)

__________________________________________________________________________________________________________________________________________________

NAME
Ns_ExecArgblk, Ns_ExecArgv, Ns_ExecProc, Ns_ExecProcess, Ns_Fork, Ns_GetEnviron, Ns_WaitForProcess, Ns_WaitProcess, ns_fork - External process execution SYNOPSIS
#include "ns.h" int Ns_ExecArgblk(char *exec, char *dir, int fdin, int fdout, char *args, Ns_Set *env) int Ns_ExecArgv(char *exec, char *dir, int fdin, int fdout, char **argv, Ns_Set *env) int Ns_ExecProc(char *exec, char **argv) int Ns_ExecProcess(char *exec, char *dir, int fdin, int fdout, char *args, Ns_Set *env) int Ns_Fork(void) char **Ns_GetEnviron(void) int Ns_WaitForProcess(int pid, int *statusPtr) int Ns_WaitProcess(int pid) int ns_fork(void) _________________________________________________________________ DESCRIPTION
These functions handle fork and exec operations. See files: nsd/exec.c, nsd/tclenv.c and nsthread/fork.c. Ns_ExecArgblk(exec, dir, fdin, fdout, args, env) Executes a command in a child process. Return process id of child process exec'ing the command or -1 on failure. Provides extended error checking and error messages. Ns_ExecArgv(exec, dir, fdin, fdout, argv, env) Execute a command in a child process using fork(2) and execve(2), returns the process id of child process exec'ing the command or -1 on failure. The child sends an extended error message to the parent. Ns_ExecProc(exec, argv) Executes a command in a child process. Returns the process id of the child process exec'ing the command or -1 on failure. Simpli- fies call to Ns_ExecArgv. Ns_ExecProcess(exec, dir, fdin, fdout, args, env) Executes a command in a child process. Returns the process id of the child process exec'ing the command or -1 on failure. Calls Ns_ExecArgblk with same arguments. Ns_Fork() Posix style fork(), using fork1() on Solaris if needed. See fork(2) man page. Calls ns_fork. Ns_GetEnviron() Returns pointer to the environment vector. Ns_WaitForProcess(pid, statusPtr) Wait for child process. Returns NS_OK on success, or NS_ERROR on failure. *statusPtr is set to the exit code of the child process. Ns_WaitProcess(pid) Wait for child process. Calls Ns_WaitForProcess with NULL statusPtr. Returns NS_OK on success, or NS_ERROR on failure. ns_fork() Posix style fork(), using fork1() on Solaris if needed. SEE ALSO
nsd(1), info(n) KEYWORDS
AOLserver 4.0 Ns_Exec(3aolserver)
All times are GMT -4. The time now is 07:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy