#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <errno.h>
#include <math.h>
#include <stdlib.h>
{
float mn=0.0;
pid_t child;
int status;
printf("This will demostrate how to get child status\n");
if((child=fork())==-1)
exit(1);
{
int i;
printf("I am the child:%ld\n",getpid());
while(((child=wait(&status))==-1)&&(errno==EINTR))
printf("Child %ld terminated due to signal %d znot caught\n",child,WTERMSIG(stat
for(i=0;i<1000000;i++)
{
mn=sin(i);
if(i==314159)
printf("sin(100000) is :%ld\n",mn);
}
i=5;
printf("I exit with %d\n",i);
exit(i);
}
while(((child=wait(&status))==-1)&&(errno==EINTR));
if(child==-1)
printf("Wait Error:%s\n",strerror(errno)
);
else if(!status)
printf("Child %ld terminated normally return status is zero\n",child);
else if(WIFEXITED(status))
printf("Child %ld terminated normally return status is %d\n",child,WEXITSTATUS(s
tatus));
else if(WIFSIGNALED(status))
printf("Child %ld terminated due to signal %d znot caught\n",child,WTERMSIG(stat
us));
}