Source Code : Producer with Consumer.c

Producer with Consumer.c

#include

#define buffer_size 5

int a[buffer_size];

int in=0;

int out=0;

int main()

{

  int ch;

  while(1)

  {

  printf("\n 1.producer\n 2.consumer\n3.display\n4.exit\nEnter ur choice:");

  scanf("%d",&ch);

  switch(ch)

  {

  case 1:

  producer();

  break;

  case 2:

  consumer();

  break;

  case 3:

  display();

  break;

  case 4:

  return(0);

  default:

  printf("wrong choice");

  }

  }

 

}

producer()

{

  int item;

  if(((in+1)%buffer_size)==out )

  {

  printf("Buffer is full");

  }

  else

  {

  printf("Enter the item:");

  scanf("%d",&item);

  a[in]=item;

  in=(in+1)%buffer_size;

 

  printf("Item is=%d",item);

  }

}

consumer()

{

  int item;

  if(in==out)

  {

  printf("Buffer is empty");

  }

  else

  {

  item=a[out];

  out=(out+1)%buffer_size;

  printf("Consumed item is=%d",item);

  }

}

display()

{

  int i;

  if(in==out)

  {

  printf("Buffer is empty");

  }

  else

  {

  if(out

  {

  for(i=out;i<=in;i++)

  {

  printf("%d",a[i]);

  }

  }

  else

  {

  for(i=out;i<=in;i++)

  {

  printf(" %d",a[i]);

  }

  } 

/*  if(out=1)

  for(i=5;i>0;i--)

  {

  printf(" %d",a[i]);

  } */ 

  }

  printf("\n\n");

}