At the red lines,I dont understand why the value of shared.full is 0 and the value of shared.empty is BUFF_SIZE. I need some explanations. ThanksCode:typedef struct { int buf[BUFF_SIZE]; /* shared var */ int in; /* buf[in%BUFF_SIZE] is the first empty slot */ int out; /* buf[out%BUFF_SIZE] is the first full slot */ sem_t full; /* keep track of the number of full spots */ sem_t empty; /* keep track of the number of empty spots */ sem_t mutex; /* enforce mutual exclusion to shared data */ } sbuf_t; sbuf_t shared; int main() { pthread_t idP, idC; int index; sem_init(&shared.full, 0, 0); sem_init(&shared.empty, 0, BUFF_SIZE);