// stdlib import #include #include #include // bash utilities import #include #include #include void main () { // array declaration char *strings[5]; char *string_cpy[5]; char temp[100]; // variables reqd int i,j; pid_t pid; int status; // input printf("Enter strings to print: \n"); for (i = 0; i < 5; i++) { strings[i] = malloc (100 * sizeof(char)); string_cpy[i] = malloc (100 * sizeof(char)); fgets(strings[i],100,stdin); strcpy(string_cpy[i], strings[i]); } // forking pid = fork(); // child process if (pid == 0) { printf("\n Child Process: \n"); for (i = 0; i < 5; i++) { for (j = 0; j < 5 - i - 1; j++) { if (strcmp(strings[j], strings[j + 1]) > 0){ strcpy(temp, strings[j]); strcpy(strings[j], strings[j+1]); strcpy(strings[j+1], temp); } } } for (i = 0; i < 5; i++) { printf("\n Child: %s \n", strings[i]); } printf("\n"); exit (00); // parent process } else if (pid > 0) { wait(&status); printf("\n Parent Process: \n"); for (i = 0; i < 5; i++) { printf("\n Parent: %s \n", string_cpy[i]); printf("%d",WEXITSTATUS(status)); } // exception handling (catchall statement) } else { printf("THE SYSTEM ENCOUNTERED AN ERROR. Please try again later or debug the code. \n"); } }