Producer and Consumer can both interact with shared memory
This commit is contained in:
parent
a22970ff41
commit
688411c38b
@ -1,4 +0,0 @@
|
|||||||
#ifndef CONSUMER_H
|
|
||||||
#define CONSUMER_H
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,5 +0,0 @@
|
|||||||
#ifndef PRODUCER_H
|
|
||||||
#define PRODUCER_H
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -15,8 +15,11 @@ int main(int argc, char* argv[])
|
|||||||
fprintf(stderr, "Usage: %s SharedID# \n", argv[0]);
|
fprintf(stderr, "Usage: %s SharedID# \n", argv[0]);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
printf("Consumer created.\n");
|
|
||||||
int sharedID = StringToNumber(argv[1]);
|
int sharedID = StringToNumber(argv[1]);
|
||||||
|
SharedStruct* sharedMem = shmat(sharedID, NULL, 0);
|
||||||
|
sem_wait(&sharedMem->semConsumer);
|
||||||
|
printf("Checking for 5 in shared struct.\n");
|
||||||
|
printf("%d\n", sharedMem->buffer[0]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ int main(int argc, char* argv[])
|
|||||||
int producerAmount = GetSplitAmount(argc, argv, 0);
|
int producerAmount = GetSplitAmount(argc, argv, 0);
|
||||||
int consumerAmount = GetSplitAmount(argc, argv, 1);
|
int consumerAmount = GetSplitAmount(argc, argv, 1);
|
||||||
int sharedID;
|
int sharedID;
|
||||||
SharedStruct *sharedMem;
|
SharedStruct* sharedMem;
|
||||||
sharedID = shmget(IPC_CREAT | (key_t)1243, sizeof(SharedStruct), IPC_CREAT | 0666);
|
sharedID = shmget(IPC_CREAT | (key_t)1243, sizeof(SharedStruct), IPC_CREAT | 0666);
|
||||||
if (sharedID < 0)
|
if (sharedID < 0)
|
||||||
{
|
{
|
||||||
|
@ -18,8 +18,11 @@ int main(int argc, char* argv[])
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
srandom((unsigned int) time(NULL));
|
srandom((unsigned int) time(NULL));
|
||||||
printf("Producer created.\n");
|
|
||||||
int sharedID = StringToNumber(argv[1]);
|
int sharedID = StringToNumber(argv[1]);
|
||||||
|
SharedStruct* sharedMem = shmat(sharedID, NULL, 0);
|
||||||
|
printf("Adding 5 to shared struct.\n");
|
||||||
|
sharedMem->buffer[0] = 5;
|
||||||
|
sem_post(&sharedMem->semConsumer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user