aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--P2/lib/utils.c21
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