HI everyone ,
I am just experimenting with the fork function . I am having some problem with my code :

HTML Code:
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>

childprocess(int pid, int pnum);
main () {
	int pid, pid0, pid1, status, FD, tochild[2], toparent[2];
	FD = creat("new file.txt", S_IRWXU);
	if((pid = fork()) < 0) {
		printf("Could not fork process");
	} else {
		if(pid !=0)
			[COLOR=Red]printf("\nProcess forked");[/COLOR]
	}
	
	if(pid == 0) childprocess(pid,1);
	//if(pid != 0) {
		pid = wait(&status);
		[COLOR=Red]printf("\nProcess (id %d ) exited ", pid);[/COLOR]
		
	//}
	
	if((pid1 = fork()) < 0) {
		printf("Could not fork second process");
	}else{
		if(pid1 !=0)
			[COLOR=Red]printf("\nSecond process forked");[/COLOR]
	}	
	if(pid == 0) childprocess(pid,2);
	
//	if(pid != 0) {
		pid = wait(&status);
		[COLOR=Red]printf("\nProcess (id %d ) exited " , pid);[/COLOR]
//	} 
	close(FD);
	exit(0);
}

childprocess(int pid, int pnum) {
	float i = 0;
	int index = 0;
	for(index = 0; index < 900; index++) {
	}
	//printf("\nPID %d matches index : %d", pid, pnum); 
	exit(0);
}
Here I have forked the process twice. It waits after each subsequent fork call while the childprocess goes to a new method where it eventually quits.

However the output is showing some strange behaviour. THis is the output of the code :

root@unitedroad-desktop:~/Desktop# ./wait3.out

Process forked
Process (id 13402 ) exited Process (id 13402 ) exited
Second process forked
Process (id 13403 ) exited

This seems a little stran as the process id 13402 sems to exit twice and inspite of me using the newline character at the begining of each string that I am printing, the second "exit line" does not start on the new line.
KIndly help me in identifing the reason for this.

Regards,
Dhruwat