From 2177f0712fb47a95b2970c6838a4a4d978174b3b Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Fri, 24 Nov 2017 18:12:18 -0500 Subject: CS3871/assignments/sync: Initial Commit --- sync/writer.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 sync/writer.c (limited to 'sync/writer.c') diff --git a/sync/writer.c b/sync/writer.c new file mode 100644 index 0000000..0a7a1fe --- /dev/null +++ b/sync/writer.c @@ -0,0 +1,51 @@ + +#include +#include +#include +#include +#include +#include +#include + + +int main(argc, argv) +int argc; +char **argv; +{ + int shmid, i, pid, id; + char *mem; + timeval *s; + + if (argc != 1) { + printf("usage: reader [id]\n"); + exit(1); + } + + id = atoi(argv[1]); + + if (argc < 2) { + printf("usage: sync [number readers] [number writers]\n"); + exit(1); + } + + if ((shmid = shmget(52, 1<<14, IPC_CREAT | 0666)) == -1){ + perror("shmget: shmget failed"); + exit(1); + } + + if ((mem = shmat(shmid, NULL, 0)) == (char *) -1) { + perror("shmat"); + exit(1); + } + + srand(time(NULL)); + + + while (1) { + s->tv_sec = rand() % (id * 2; + for (i = 0; i < 1<<14; i++) { + mem[i]= 0x30 + id; + select(0, NULL, NULL, NULL, s); + } + } +} -- cgit v1.1