Я уже посмотрел единственный похожий пост, который смог найти, но это было не то, что я искал.
По сути, я пытаюсь запустить Odd-Even Sort с разветвлением, поэтому ребенок запускает шансы, а родитель запускает события.И то, и другое требует совместного использования вектора inputValues, а также логической сортировки.
Следующий код не содержит ни одной из моих неудачных попыток совместного использования памяти и является лишь базовой структурой для использования вилок с алгоритмом поиска.:
while(!sorted)
{
pID = fork();
sorted = true;
cout << "Sort set to TRUE." << endl;
if(pID == 0)
{
int num = 1;
cout << "Child swap run" << endl;
Swap((void *) num);
cout << "Status: " << ((sorted) ? "SORTED" : "UNSORTED") << endl;
exit(0);
}
else if(pID < 0)
{
cout << "Failed to fork." << endl;
exit(1);
}
else
{
wpid = waitpid(pID, &status, waitStatus);
int num = 0;
cout << "Parent swap run" << endl;
Swap((void *) num);
cout << "Status: " << ((sorted) ? "SORTED" : "UNSORTED") << endl;
}
}
Я пробовал несколько способов взломать это разделение памяти, но не могу найти ни одного ресурса, который действительно объясняет, КАК это работает, что мне нужно, и лучший способ сделать это.
Итак, мои требования заключаются в следующем:
- Родитель и ребенок должны иметь возможность совместно использовать глобальный вектор и управлять им, а также логический
- Это должно быть в состояниидля запуска в цикле, как показано
- Это должно работать с переменными, используемыми в main () и в функции swap ()
Если у вас есть какие-либо советы, я 'Буду очень признателен им.Спасибо!