Step by step fork()


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Step by step fork()
# 1  
Old 10-01-2010
Step by step fork()

Hi,
Can anyone tell me if ii am right about this code.

Code:
 childid=0;
for (i=1;i<3;i++){
  if(childid=fork())
     break;
}
fprintf("Print process id's and so on");

First process comes to fork.Comes to break; breakes out of loop,prints and dies. Child Just created continues from the statement break;breakes oit of loop and prints. Therefore this output should give me print for 2 processes but instead keeps giving me output for 3 processes.

Can anyone try to clear this please..why it is printing 3 proceses
# 2  
Old 10-01-2010
  • Parent process enters loop (i=1) and forks
  • Child "breaks" out of loop and goes to the fprintf and prints the first message and then exits
  • Parent loops round (i=2) and forks
  • Child "breaks" out of loop and goes to the fprintf and prints the second message and then exits
  • Parent loops round (i=3) terminates the loop and prints the third message, and then exits
# 3  
Old 10-01-2010
parent goes to break;

doesnt parent after fork goes to break; statement....This is output i am getting...

Code:
processID:10925  parent ID:10924  child ID:0
processID:10924  parent ID:10852  child ID:0
processID:10926  parent ID:10924  child ID:0

# 4  
Old 10-01-2010
Quote:
Originally Posted by joker40
doesnt parent after fork goes to break; statement....This is output i am getting...

Code:
processID:10925  parent ID:10924  child ID:0
processID:10924  parent ID:10852  child ID:0
processID:10926  parent ID:10924  child ID:0

Why do you think the parent process won't execute the printf() statement?
This User Gave Thanks to achenle For This Post:
# 5  
Old 10-01-2010
Because

It will but only once. After it forks it goes
to break. Then it comes out of loop and prints
and dies
# 6  
Old 10-08-2010
forking problem

this was my first try with forking....
Code:
childid=0; 
for (i=1;i<3;i++)  
     if(childid=fork())      
            break;

fprintf("Print processid%d  parentid%d  childid%d" , getpid,getparent,child);

But when i split fprintf() one line each....such as......
Code:
.....
.....
fprintf("Print processid%d" , getpid());
fprintf("Print parentid%d",getparent());
fprintf("print child%d\n",child);

My output gets messed up and parentid of one process get mixed up on same line with childid of different process and sometimes doesn't even print processid.Does this have anything to do with fprintf() function which holds data for output in the buffer.My assumption is that sometimes while one process is lets say on first line of its printf() cpu takes away its time and then gives it to second process. Second process maybe gets to second line of printf() and now tis time is taken away. Now in the buffer we have 3 things that need to be printed out. Am i correct on what is happening here??
 
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. What is on Your Mind?

Slowly Removing Bold Font Style - Step-by-Step

FYI, I'm slowly removing a lot of the bold font-styles from titles of discussions, forum titles, etc I'm not removing bold for the entire site because we do need bold from time to time, especially in posts and sometimes in other places. However, the original forum style had way too much... (3 Replies)
Discussion started by: Neo
3 Replies

2. Solaris

step step apache2 configuration doc

Hi Guys, does anyone know of a step by step guide on how configure apache2 web server in solaris 10? I will really appreciate it. Thanks a lot (1 Reply)
Discussion started by: cjashu
1 Replies

3. UNIX for Advanced & Expert Users

Test shell script step by step?

Hi to all, I don't know if someone has done sometime a MS Excel Macro, that allows us to press F8 over the code to see step by step, to mention something, how is running the code, which values take the variables, if some loop is executing correct or where a error occurs, and some other... (7 Replies)
Discussion started by: Ophiuchus
7 Replies

4. Linux

May you explain step by step where and how I will add pseudo code

Thank all of you. May you explain step by step where and how I will add pseudo code Note : I have Linux 2.6.24-26-server on x86_64 dears kindly help me (3 Replies)
Discussion started by: nonowa
3 Replies

5. Solaris

Step by step to replace Failed disk

Hi all. This may be a stupid question but here goes: I lost a disk on my Sun-Fire 480-r and want to replace it. I don't care about the data, I just need to get a new disk in. Can anyone supply me with step by step procedure please. I am not an expert by any means and it is a dev box so I... (1 Reply)
Discussion started by: jamie_collins
1 Replies

6. Shell Programming and Scripting

works step by step on command line but not in script

Hi all, The following script is fine when I work via command line m=1 c=0 while do echo $m gnokii --getsms IN $m > out.txt; m=`expr $m + 1`; cat out.txt >> message_log; ############ read first crap< <(sed -n '/Text:/{n;p;}' out.txt); read message< <(sed -n '/Text:/{n;p;}'... (2 Replies)
Discussion started by: whamchaxed
2 Replies

7. UNIX for Dummies Questions & Answers

Step by step Installation of Unix SCO 2.1

I am new to unix and server at my job crashed due to hardware problem. I'm now opted to install sco unix on a new server - could anybody help me with the steps I need to take (pretty old machine) Thanks & Regards Nancy :( (0 Replies)
Discussion started by: nensee7
0 Replies

8. UNIX for Dummies Questions & Answers

install of sco unix step by step

HI I am new to unix and need to install sco unix on a new server - could anybody help me with the steps I need to take - the hd is a 9gb scsi drive (pretty old machine) Thanks (1 Reply)
Discussion started by: porikamu
1 Replies
Login or Register to Ask a Question