Code:#include<stdio.h>#include<stdlib.h> #include<unistd.h> #include<sys/types.h> #include<sys/wait.h> #include<string.h> void forking(int n); int main() { int i=0; int n=3; char child0[12]={'A','b','c','d'}; char child1[4]={'E','f','g','h'}; char child2[4]={'I','j','k','l'}; forking(n); return 0; } void forking(int n) { pid_t pid; char child[4]={'A','b','c','d'}; char child1[4]={'E','f','g','h'}; char child2[4]={'I','j','k','l'}; int i=0; int status; while(i<n) { pid=fork(); i++; if(pid<0) { perror("fork");} else if (pid==0) { char c; printf("Hi I Am Process PID %d \n\n",getpid()); if(n==1){ for(c = 'A'; c <= 'D'; ++c){ printf("%c ", c);} printf("\n " ); } if(n==2){ for(c = 'E'; c <= 'H'; ++c){ printf("%c ", c);} printf("\n " ); } if(n==3){ for(c = 'I'; c <= 'L'; ++c){ printf("%c ", c);}printf("\n " ); } exit(1); } else { wait(&status); forking(n-1); exit(0); }} printf("Good Bye From Parent %d \n",getpid()); }