在上,我稍加关注。 这项活动,而且我无法确定我是否应当对我更新的法典作出答复,把我原来的职位推给我,或提出一个新问题。 如果我没有遵守议定书,请提供咨询意见。
我迄今为止所做的工作已反映在投入文件中,并将所有愤怒分配给一个阵列。 然后,我把ger的总数(index)与read的数量( number_of_threads)区分开来,以便找到最佳的编号_per_thread。
然后,我开始通过阵列中的所有数字进行加固,根据最佳号——每个批号——。
prob_5.c
#include <stdio.h>
int main(int argc, char *argv[]) {
int i, j;
FILE *fp;
int values[15000];
char line[32];
int index = 0;
int number_of_threads = 10;
int numbers_per_thread;
for (i = 1; i < argc; i++) {
fp = fopen(argv[i], "r");
if (fp == NULL) {
fprintf(stderr, "cat: can t open %s
", argv[i]);
continue;
}
while (fgets(line, sizeof(line), fp) != NULL && (index < 15000)) {
sscanf(line, "%d", &values[index]);
index++;
}
fclose(fp);
}
numbers_per_thread = index / number_of_threads;
while (i < index) {
for (j = 0; (j < numbers_per_thread) && (i < index); j++) {
i++;
j++;
}
}
printf("%d
", index);
return 0;
}
我对我如何着手和阻止read子感到困惑。 我是否应该开始在座(j = 0; .)路段内,然后创造(j = 号码_per_thread)来结束路面? 我是否应当建立一个新阵列,以容纳每一条路面的号码? 我猜想,我对如何使用read子——create、pthread_join等感到困惑。 这是我第一次尝试使用这些工具。