Sponsored Content
Full Discussion: Pipelining Processes
Top Forums Programming Pipelining Processes Post 63117 by Trivialnight on Tuesday 22nd of February 2005 07:54:07 PM
Old 02-22-2005
Well I did a little more testing on it and the problem seems to be that the parent process is not breaking out of the for loop like it is suppose to and not executing findfib() until the last process.

Code:
void doall(int id, int np)
{
   printf("ID: %d\n",id);
}

void mkpipeln(int *id, int np)
{  int fd[2]; pid_t child;
   for(*id = 1; *id < np; (*id)++){
      pipe(fd);
      child = fork();
      if(child > 0){
        dup2(fd[1],1);
        if((close(fd[0])<0)||(close(fd[1])<0)) die("close-1 failed");
        break;}
      else{
        printf("Parent: %d\n",(int)getppid());
        printf("Child: %d\n",(int)getpid());
        dup2(fd[0],0);
        if((close(fd[0])<0)||(close(fd[1])<0 )) die("close-1 failed");
        }
   }
}

Output for 7 processes if it helps at all:
Quote:
Parent: 6282
Child: 6283
Parent: 6283
Child: 6284
Parent: 6284
Child: 6285
Parent: 6285
Child: 6286
Parent: 6286
Child: 6287
Parent: 6287
Child: 6288
ID: 7
-tn
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

co-processes

Is it possible to have a main script (i will call it main.ksh) that executes say, 4 other scripts (sub_prog_1.ksh, sub_prog_2.ksh etc..) from within this main.ksh (simultaneously/in parallel), have them run in the background and communicate back to main.ksh when complete? My guess is to use... (1 Reply)
Discussion started by: google
1 Replies

2. UNIX for Dummies Questions & Answers

processes

What command string will locate ONLY the PID of a process and ouput only the number of PID of the process? (1 Reply)
Discussion started by: mma_buc_98
1 Replies

3. Shell Programming and Scripting

I need some example of Co-Processes

I want to know how to work the Co-Processes in kornshell scripts. So, I very need some script about Co-Processes! thanks ...:) (3 Replies)
Discussion started by: javalee
3 Replies

4. Shell Programming and Scripting

Pipelining

My problem is more a question of how to do it more elegantly than how to do it at all. The problem: I have a pipeline which has to write to the screen AND to a logfile: proc1 | tee -a <logfile> What makes things difficult is i also need the return code of proc1. But proc1 | tee -a... (6 Replies)
Discussion started by: bakunin
6 Replies

5. UNIX for Advanced & Expert Users

Monitoring Processes - Killing hung processes

Is there a way to monitor certain processes and if they hang too long to kill them, but certain scripts which are expected to take a long time to let them go? Thank you Richard (4 Replies)
Discussion started by: ukndoit
4 Replies

6. Solaris

Identifying and grouping OS processes and APP processes

Hi Is there an easy way to identify and group currently running processes into OS processes and APP processes. Not all applications are installed as packages. Any free tools or scripts to do this? Many thanks. (2 Replies)
Discussion started by: wilsonee
2 Replies

7. Shell Programming and Scripting

Bash pipelining

Hello, There is a symbolic link in a folder. I would like to read destination of this link and get base name of pointed file. Let's say, there is symlink : symlink -> ../file.txt. I can do that what I want by this script: readlink symlink | while read var do echo `basename $var` done but... (1 Reply)
Discussion started by: scdmb
1 Replies

8. UNIX for Dummies Questions & Answers

Processes

Hi all, I needed a little help. It's OS thing. Suppose I have 2 machine connect over a network, I will call my machines as M1and M2. If I copy a files from M1 to M2. What tasks are these two machine performing for copy to work. My assumption is that M1 is performing read action and... (1 Reply)
Discussion started by: vishwesh
1 Replies

9. Shell Programming and Scripting

Finding the age of a unix process, killing old processes, killing zombie processes

I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time. Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies

10. UNIX for Dummies Questions & Answers

Pipelining with tar

Hello, I am currently interning at a place and my job is to essentially learn UNIX. My supervisor gives me problems here and there to help guide me with my learning but for the most part I'm doing this all by self-teaching myself. Needless to say I have run into a few obstacles...for... (12 Replies)
Discussion started by: huntreilly25
12 Replies
PCNTL_FORK(3)								 1							     PCNTL_FORK(3)

pcntl_fork - Forks the currently running process

SYNOPSIS
int pcntl_fork (void ) DESCRIPTION
The pcntl_fork(3) function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system. RETURN VALUES
On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised. EXAMPLES
Example #1 pcntl_fork(3) example <?php $pid = pcntl_fork(); if ($pid == -1) { die('could not fork'); } else if ($pid) { // we are the parent pcntl_wait($status); //Protect against Zombie children } else { // we are the child } ?> SEE ALSO
pcntl_waitpid(3), pcntl_signal(3), setproctitle(3). PHP Documentation Group PCNTL_FORK(3)
All times are GMT -4. The time now is 05:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy