aboutsummaryrefslogtreecommitdiffstats
path: root/P2/lib/utils.c
diff options
context:
space:
mode:
authorMatt Strapp <strap012@umn.edu>2020-10-26 08:43:30 -0500
committerMatt Strapp <strap012@umn.edu>2020-10-26 08:43:30 -0500
commitcd43f361676b151a90607fdeb76724b694288ef9 (patch)
tree1bc6543b96eb4fa8ced332bce4ac78ca1bd9225c /P2/lib/utils.c
parentAdd error checking (diff)
downloadcsci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar.gz
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar.bz2
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar.lz
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar.xz
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.tar.zst
csci4061-cd43f361676b151a90607fdeb76724b694288ef9.zip
Add new template
Diffstat (limited to 'P2/lib/utils.c')
-rw-r--r--P2/lib/utils.c54
1 files changed, 1 insertions, 53 deletions
diff --git a/P2/lib/utils.c b/P2/lib/utils.c
index 603a699..17b3104 100644
--- a/P2/lib/utils.c
+++ b/P2/lib/utils.c
@@ -1,62 +1,10 @@
#include "utils.h"
-//Receive from send and return the chonk
char *getChunkData(int mapperID) {
- //Message
- struct msgBuffer message;
- //Queue ID, not sure what it actually does
- int mid;
- //Queue Key
- key_t key = 10;
- mid = msgget(key, 0666 | IPC_CREAT);
- if (mid < 0) {
- perror("Cannot open queue.\n");
- return NULL;
- }
- msgrcv(mid, &message, MSGSIZE, mapperID, 0);
- if (strcmp("END", message.msgText)) {
- struct msgBuffer ACK = {mapperID, "ACK"};
- msgsnd(mid, &ACK, MSGSIZE, 0);
- }
- // msgctl(mid, IPC_RMID, 0);
- return message.msgText;
}
// sends chunks of size 1024 to the mappers in RR fashion
void sendChunkData(char *inputFile, int nMappers) {
- struct msgBuffer message;
- key_t key = 10;
- int msgid;
-
- // open message queue
- msgid = msgget(key, 0666 | IPC_CREAT);
- if (msgid < 0) {
- perror("Cannot open queue.\n");
- exit(-1);
- }
- // message.msgText = 1;
- FILE *fptr = fopen(inputFile, "r");
-
- // construct chunks of 1024 bytes
- while(fgets(&message, chunkSize, fptr) != EOF) {
-
- /* Go to the end of the chunk, check if final character
- is a space if character is a space, do nothing
- else cut off before that word and put back file */
- // TODO! help
-
- msgsnd(msgid, &message, mapperID);
- }
-
- for (long i = 1; i < nMappers; i++) {
- struct msgBuffer END = {i, "END"};
- msgsnd(msgid, &END, MSGSIZE, 0);
-
- // TODO! does this need to be in another loop or is blocking good enough?
- msgrcv(msgid, &message, MSGSIZE, i, 0);
- }
-
- // msgctl(msgid, IPC_RMID, 0); // close that bih
}
// hash function to divide the list of word.txt files across reducers
@@ -79,7 +27,7 @@ void shuffle(int nMappers, int nReducers) {
// check if the character is valid for a word
int validChar(char c){
- return ((tolower(c) >= 'a') && tolower(c <='z')) ||
+ return (tolower(c) >= 'a' && tolower(c) <='z') ||
(c >= '0' && c <= '9');
}