How is WEXITSTATUS(stat_val) obtaining the value 37? I know that WEXITSTATUS is used to obtain the child's exit code and the exit_code variable is assigned 37 in this program but i don't see how this WEXITSTATUS is working. Is the WEXITSTATUS function written to look through the child process code for an exit_code variable?

Code:
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
int main()
{

  pid_t pid;
  char *message;
  int n;
  int exit_code;
  printf(“fork program starting\n”);
  pid = fork();
  switch(pid)
  {
    case -1:
      perror(“fork failed”);
      exit(1);
    case 0:
      message = “This is the child”;
      n = 5;
      exit_code = 37;
      break;
    default:
      message = “This is the parent”;
      n = 3;
      exit_code = 0;
      break;
  }
  for(; n > 0; n--) {
    puts(message);
    sleep(1);
  }
  //This section of the program waits for the child process to finish.
  if (pid != 0) {
    int stat_val;
    pid_t child_pid;
    child_pid = wait(&stat_val);
    printf(“Child has finished: PID = %d\n”, child_pid);
    if(WIFEXITED(stat_val))
      printf(“Child exited with code %d\n”, WEXITSTATUS(stat_val));
    else
      printf(“Child terminated abnormally\n”);
    }
  exit(exit_code);
}