C 语言模拟 MapReduce 切分单词
-
本文仅仅采用了单机单线程来做演示,有需要的自行修改
#include <stdio.h> #include "string.h" #include "pthread.h" #define PTHREAD_NUMS 2 typedef struct fileSpilt { int countLine; char content[1024][1024]; } FileSpilt; FileSpilt fileSpilt; // 将文件按行读取所以内容到 FileSpilt 中 void spiltFile(const char *fileName) { FILE *fp = fopen(fileName, "r+"); int indexLine = 0; char tmp[1024]; // 为了去除 fgets 读取每行结尾的换行符做的改进 while (!feof(fp)) { fgets(tmp, 1024, fp); memset(fileSpilt.content[indexLine], '\0', sizeof(fileSpilt.content[indexLine])); if (tmp[strlen(tmp) - 1] == '\n') strncpy((char *) &fileSpilt.content[indexLine], tmp, strlen(tmp) - 1);