Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для _Goodwin
8 / 8 / 3
Регистрация: 28.11.2012
Сообщений: 105

Генерация процессов через указанный интервал времени

28.05.2013, 10:10. Показов 1218. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, как правильно составить блок кода на С, использовав fork(), чтобы через 2 с генерировалось 5 процессов, которые останавливались через n с после своей роботы?

Добавлено через 7 часов 52 минуты
Правильно ли я набросал макет?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <math.h>
int main()
{
int pid,i;
for (i=0;i<5;i++)
{
sleep (2);
pid=fork();
if(pid == 0)
{ 
printf("процесс создан\n     --->PID = %d<---\n     --->PPID = %d<---\n",getpid(),getppid());
sleep(5);
printf("процесс остановлено\n     --->PID = %d<---\n     --->PPID = %d<---\n",getpid(),getppid());
}
if (pid<0)
{
perror("Fork error ");
return -1;
}
}
return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.05.2013, 10:10
Ответы с готовыми решениями:

Выдавать сообщение через интервал времени, указанный в TextBox
Даны textbox1,2 и 1 timer1. в textbox1 задается начальное время а в textbox2 минуты. Надо чтобы timer1 выводил msgbox() каждые...

Запросы: отчет по сотруднику в указанный интервал времени
Ребята можете помочь. Вот делаю проект в С++ builder, Вот для комбобокс прописал код: Form1-&gt;ADOTable1-&gt;Filtered=false; ...

Определить, входит ли текущее время в указанный интервал времени
Здравствуйте! Нужно определить или текущее время входит в указанный интервал времени. Делаю от 00:00:00 до 23:00:00 Проблема...

4
Псевдослучайный
1946 / 1146 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
28.05.2013, 21:25
У вас в цикле с форком будут крутиться и родительские и дочерние процессы, так что по итогам получится заметно больше пяти пар выводов.
0
51 / 49 / 7
Регистрация: 31.10.2011
Сообщений: 98
29.05.2013, 13:52
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
 
#define PROCESSES 5
 
int main() {
    pid_t pid;
    int status;
    int processCount = 0;
 
    sleep(2);
    while (processCount++ < PROCESSES) {
        pid = fork();
        if (pid < 0) {
            fprintf(stderr, "could not fork: %s\n", strerror(errno));
            exit(EXIT_FAILURE);
        } else if (pid == 0) {
            printf("[%d -> %d] Process created\n", getppid(), getpid());
            fflush(stdout);
            sleep(5);
            printf("[%d -> %d] Process finished\n", getppid(), getpid());
            fflush(stdout);
            exit(EXIT_SUCCESS);
        }
    }
 
    while (--processCount > 0) {
        wait(&status);
    }
 
 
    return 0;
}
0
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
29.05.2013, 13:57
Простите, что встреваю...
Объясните, зачем вообще форк нужен? Т.е. зачем процесс сам себя копирует?
Почему нельзя запускать другой (к примеру) бинарник с другим функционалом?
0
51 / 49 / 7
Регистрация: 31.10.2011
Сообщений: 98
29.05.2013, 15:05
Цитата Сообщение от oxotnik Посмотреть сообщение
Простите, что встреваю...
Объясните, зачем вообще форк нужен? Т.е. зачем процесс сам себя копирует?
Почему нельзя запускать другой (к примеру) бинарник с другим функционалом?
Можно запускать - fork + exec - так работают оболочки. Плюс они могут, например, закрыть дескриптор стандартного вывода, и открыть файл - так работает перенаправление. Типа fork, close(STDOUT), open("out.txt"), exec - получаем вывод в файл (на самом деле не совсем так, но принцип такой). Пример: $ whoami > iam.txt
Но fork полезен и без exec'а. Пример - веб сервер. Главный процесс не занимается обработкой запроса - он форкает себя, а обрабатывают запрос дети. Если дочерний процесс умирает - это не приводит к краху всего сервера и остановке обработки остальных (параллельных) запросов. Пимер: apache httpd.
И это одни из самых очевидных применений fork'а.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2013, 15:05
Помогаю со студенческими работами здесь

Определить, сколько будет времени через заданный интервал времени
Текущее показание электронных часов: m часов, n минут и k секунд. Какое время будут показывать часы через p ч q мин и r c? Помогите,...

Закрыть страницу через указанный промежуток времени
Еще 1 вопрос. Как сделать в html что бы страница закрывалась через указанный промежуток времени? Гугл говорит что способ есть с JS через...

Обновление через интервал времени
Как сделать так, что бы программа вызывала какие-нибудь методы каждую секунду?

Запуск программы через батник в указанный диапазон времени
День добрый! При запуске Винды стартует батник. Нужен код, который проверяет время. И если время входит в диапазон от 10:00 до...

Определите показания часов через указанный промежуток времени
Даны показания электронных часов и промежуток времени в виде часы минуты секунды. Определите показания часов через указанный промежуток...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru