| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > сортировка строки, используя fork() и pipe |
| Автор: awake 14.5.2012, 10:52 | ||
| Дали задание используя системный вызов fork() и pipe. Решить какую-то задачу. Я решил сделать "сортировку пузырьком". Вот код
А как теперь этот код передалать используя fork() и pipe. Если я правильно понял задание то нужно создать процесс(потомок) , используя fork(), затем отсортировать сроку и записать её в канал(write), а затем сам результат прочитать в Родителе(read). Я вот немного не пойму в где производить саму сортировку. в Потомке или в Родителе? и как правильно всё туда записать? |
| Автор: xvr 14.5.2012, 14:05 |
Не самый удачный выбор. Нужно делать то, что можно легко распараллелить. Пузырек не параллелится. Лучше возьмите QuickSort, если уж хочется что то посортировать |
| Автор: sergioK1 14.5.2012, 20:58 | ||||
ну как то так
хотя на компе не проверял , лины нет под рукой xvr Не понял ваш пост Какая разница какой алгоритм потомок юзает ?, главное что результат был в трубе, и папа его вытащит |
| Автор: xvr 15.5.2012, 10:27 |
У меня есть подозрение, что от ТС хотели параллельной сортировки (ну или чего то параллельного), а не 'общения через трубу'. Т.к. первое еще имеет какой то смысл, а второе никакого смысла не имеет |
| Автор: awake 15.5.2012, 12:16 | ||
Да вы правы мне действительно нужна параллельная сортировка.И "пузырёк" не подходит. По вашему совету думаю взять "быструю сортировку". Как я понял часть сортировки нужно реализовать в потомке, а затем через трубу отправить результат для дальнейшей сортировки в родителе. Или сортировку реализовать в 2 потомках а затем результаты их сортировки отправить через трубу родителю. А как правильно это сделать? Не могли бы вы привести пример. |
| Автор: sergioK1 15.5.2012, 13:21 | ||
это логичнее IMHO. каждый процесс занимаеться своей задачей, в реальных системах - один програмист "сортирует", другой "соединяет " |