Producer cons

PHOTO EMBED

Sat Mar 22 2025 07:48:04 GMT+0000 (Coordinated Universal Time)

Saved by @Vyshnaviii

#include <stdio.h>
#include <stdlib.h>

int full = 0, empty = 3, x = 0;

void producer();
void consumer();
int wait(int);
int signal(int);

int main() {
    int n;
    
    printf("1. PRODUCER\n2. CONSUMER\n3. EXIT\n");
    
    while (1) {
        printf("ENTER YOUR CHOICE\n");
        scanf("%d", &n);
        
        switch (n) {
            case 1:
                if (empty != 0)
                    producer();
                else
                    printf("BUFFER IS FULL\n");
                break;
                
            case 2:
                if (full != 0)
                    consumer();
                else
                    printf("BUFFER IS EMPTY\n");
                break;
                
            case 3:
                exit(0);
                break;
        }
    }
}

int wait(int s) {
    return (--s);
}

int signal(int s) {
    return (++s);
}

void producer() {
    full = signal(full);
    empty = wait(empty);
    x++;
    printf("In Producer: Produces the item %d\n", x);
}

void consumer() {
    full = wait(full);
    empty = signal(empty);
    printf("In Consumer: Consumes item %d\n", x);
    x--;
}
content_copyCOPY