我应该越来越舒适叉了,我看到了一个练习,说要用叉子呼叫搜索索引值从0到15的阵列我们假设每个进程只能做两件事情... ...( 1)是检查以查看是否阵列是长度为1,和(2)比较的阵列与数的单个元素被搜索。 基本上我传递一个数值,它应该做的叉的数量有限,并返回一个数字的指数。 这里是我的代码..
#define MAXINDEX 16
int forkSearch(int a[], int search, int start, int end){
if(start == end){
if(*(a + end) == search){
return end;
}
}
else{
pid_t child = fork();
if(child == 0) return forkSearch(a, search, start, end/2);
else return forkSearch(a, search, (start + end)/2, end);
}
}
int main(int argc, char* argv[]){
int searchArray[MAXINDEX] = {1, 12, 11, 5, 10, 6, 4, 9, 13, 2, 8, 14, 3,\
15, 7};
printf("Should be 1. Index of 12 = %d\n", forkSearch(searchArray,
12, 0, MAXINDEX));
return 0;
}
在这个快速爆炸计划的回归似乎一切都可以是1,10,11,或13为什么没有这方面的工作像它应该。