|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||
Нужно дождаться завершения дочернего процесса13.03.2018, 10:38. Показов 5714. Ответов 12
Метки нет (Все метки)
Суть в том, что нужно обработать каждый массив в новом процессе.
Обработкой занимается ф-я Work().Понимаю что при создании нового процесса он начинает выполнять тот же код, с момента запуска процесса. Но как дождаться завершения (чекайте main)? Код выполняет, но Max I & Max II == 0 (это типа Максимальная сумма нечетных(pair->x) и четных(pair->y) ). Я так понял что родительский процесс завершается раньше, чем дочерние. И тупо не успевает записаться информация сумм четных и нечетных в resultOfArr. Как-то надо фиксануть Пробовал wait/waitpid расставлять, где только не пробовал - прогресса 0.
0
|
||||||
| 13.03.2018, 10:38 | |
|
Ответы с готовыми решениями:
12
Составьте UNIX-программу на языке С, порождающую в качестве дочернего процесса свою копию и ожидающую ее завершения
|
|
Заблокирован
|
|||||||
| 13.03.2018, 10:57 | |||||||
0
|
|||||||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||
| 13.03.2018, 11:16 [ТС] | ||||||
|
Pavel_Srgv, в вашем коде wait сработает в том случае когда не удастся создать процесс, или что?
Просто для примера у себя запустите код без создания процессов
0
|
||||||
|
Заблокирован
|
|||
| 13.03.2018, 11:36 | |||
|
Добавлено через 4 минуты
0
|
|||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
|
| 13.03.2018, 11:41 [ТС] | |
|
0
|
|
|
Заблокирован
|
||
| 13.03.2018, 11:43 | ||
|
1
|
||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
|
| 13.03.2018, 11:54 [ТС] | |
|
Pavel_Srgv, странно что в теории к лабе о linux interprocess communication ничего не говорится
![]() И вообще впервые слышу об этом.
0
|
|
|
Заблокирован
|
|||
| 13.03.2018, 12:00 | |||
|
0
|
|||
|
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
|
||||||
| 13.03.2018, 12:05 | ||||||
1
|
||||||
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
||||||
| 13.03.2018, 12:06 [ТС] | ||||||
|
Pavel_Srgv,
Решить задачу с помощью нескольких процессов. Каждый процесс должен вывести свой идентификатор и отработать заданное время. Массивы заполняются с помощью функции random(). Даны 5 массивов (по 9999 элементов в каждом). Требуется определить максимальную сумму четных и нечетных элементов. Обработка каждого массива выполняется в отдельном процессе. В теории говорится только о getpid, getppid, wait, waitpid, fork и приведен след пример:
0
|
||||||
|
Заблокирован
|
|
| 13.03.2018, 12:22 | |
Сообщение было отмечено anapshy как решение
Решение
Самое просто для тебя решение, на мой вкус - выдели память под resultOfArr с помощью mmap и MAP_SHARED. Процессы пусть записывают в нее свои результаты. Когда все закончат, родительский найдет максимальные суммы среди четных и нечетных. Почему в теории упустили вопрос взаимодействия процессов - вопрос к авторам.
1
|
|
|
533 / 274 / 220
Регистрация: 14.11.2016
Сообщений: 1,054
|
|
| 13.03.2018, 12:30 [ТС] | |
|
Pavel_Srgv, а если в куче выделить память под resutOfArr? Или тогда тоже разные адреса будут в процессах?!
0
|
|
|
Заблокирован
|
||
| 13.03.2018, 12:35 | ||
|
1
|
||
| 13.03.2018, 12:35 | |
|
Помогаю со студенческими работами здесь
13
Ограничение прав дочернего процесса Перенаправление stdin/stdout дочернего процесса Передать несколько чисел из дочернего процесса в родительский Псевдотерминал: функция возвращает ID дочернего процесса вместо 0 и 1 Передача имени файла при создании дочернего процесса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|