diff options
Diffstat (limited to 'P2')
-rw-r--r-- | P2/lib/utils.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/P2/lib/utils.c b/P2/lib/utils.c index cb43574..5849296 100644 --- a/P2/lib/utils.c +++ b/P2/lib/utils.c @@ -35,10 +35,9 @@ void sendChunkData(char *inputFile, int nMappers) { // open message queue int msgid = openQueue("map"); int map = 1; - int fd = open(inputFile, O_RDONLY); + FILE* file = fopen(inputFile, "r"); // construct chunks of 1024 bytes - while(read(fd, message.msgText, chunkSize) != 0) { - // printf("%s\n", message.msgText); + while(fgets(message.msgText, chunkSize + 1, file) != NULL) { /* 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. @@ -52,12 +51,14 @@ void sendChunkData(char *inputFile, int nMappers) { //http://crasseux.com/books/ctutorial/Finding-file-positions-at-a-low-level.html // TODO! help - - // int i = 1023; - // while(message.msgText[i] != ' ') { - // message.msgText - // } - + int i = 1023; + while(message.msgText[i] != ' ' || message.msgText[i] != '.') { + i--; + message.msgText[i] == '\0'; + printf("%d\n", i); + } + fseek(file, (i - 1023), SEEK_CUR); + printf("%s\n", message.msgText); message.msgType = (map++ % nMappers) + 1 ; //THIS IS DEBUG, NOT ACTUALLY FUNCTIONAL (like at all) msgsnd(msgid, &message, map, 0); @@ -67,7 +68,7 @@ void sendChunkData(char *inputFile, int nMappers) { struct msgBuffer END = {i, "END"}; msgsnd(msgid, &END, MSGSIZE, 0); } - + fclose(file); } // hash function to divide the list of word.txt files across reducers |