Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 04.09.2015
Сообщений: 28

Процесс-родитель сообщает о статусе всех завершившихся процессов-детей

27.09.2015, 13:33. Показов 943. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
модифицируйте обработку сигналa в программе , не применяя POSIX-сигналы, так, чтобы процесс-родитель все-таки сообщал о статусе всех завершившихся процессов-детей.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* Программа для иллюстрации ненадежности сигналов */
#include <sys/types.h>
#include <unistd.h>
#include <waith>
#include <signal.h>
#include <stdio.h>
/* Функция my_handler – обработчик сигнала SIGCHLD */ 
void my_handler(int nsig){
    int status;
    pid_t pid;
    /* Опрашиваем статус завершившегося процесса и одновременно 
    узнаем его идентификатор */ 
    if((pid = waitpid(-1, &status, 0)) < 0){
        /* Если возникла ошибка – сообщаем о ней и продолжаем 
        работу */ 
        printf("Some error on waitpid errno = %d\n", errno);
    } else {
        /* Иначе анализируем статус завершившегося процесса */ 
        if ((status & 0xff) == 0) {
            /* Процесс завершился с явным или неявным вызовом 
            функции exit() */ 
            printf("Process %d was exited with status %d\n", 
            pid, status >> 8);
        } else if ((status & 0xff00) == 0){
            /* Процесс был завершен с помощью сигнала */ 
            printf("Process %d killed by signal %d %s\n", 
            pid, status &0x7f,(status & 0x80) ? 
            "with core file" : "without core file");
        }
    }
}
int main(void){
    pid_t pid;
    int i;
    /* Устанавливаем обработчик для сигнала SIGCHLD */ 
    (void) signal(SIGCHLD, my_handler);
    /* В цикле порождаем 5 процессов-детей */ 
    for (i=0; i
        if((pid = fork()) < 0){
            printf("Can\'t fork child %d\n", i);
            exit(1);
        } else if (pid == 0){
            /* Child i – завершается с кодом 200 + i */
            exit(200 + i);
        }
        /* Продолжение процесса-родителя – уходим на новую 
        итерацию */ 
    }
    /* Продолжение процесса-родителя – уходим в цикл */ 
    while(1);
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2015, 13:33
Ответы с готовыми решениями:

Запрос: вывести детей, у которых указан только один родитель
Есть таблица. Как написать запрос выводящий детей воспитывающихся в неполных семьях? То есть только тех, у кого указан только один...

периодически зависает апач, много процессов в статусе "W"
Добрый день :flirt:. Прошу помощи гуру форума. Перелопатила гугл, голова кругом, выхода не нашла. C недавнего времени периодически...

Создать приложение, которое выполняет любой процесс и сообщает об успешном выполнении или наоборот
создайте приложение, которое выполняет любой процесс и сообщает об успешном выполнении или наоборот

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2015, 13:33
Помогаю со студенческими работами здесь

Завершение всех запущенных процессов из находящегося в текстовом файле списка запрещенных к запуску процессов
пожалуйста помогите написать батник. Задать в текстовом файле список процессов, запрещенных к запуску. Создать командный файл,...

Можно ли определить процесс "родитель"?
Допустим программа А написаная на шарпе была запущенна какой то другой программой Б с помощью &quot;CreateProcess&quot;,можно ли в...

Как вывести всех студентов у кого есть один родитель или опекун
ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СтудентыРодственники.ФИО) КАК Родитель, СтудентыРодственники.КонтактныйТелефон, ...

Генеалогическое древо. Паспортные данные членов некоторого родового клана; ссылки на детей (или на родителей). Поиск всех потомков или всех предков дл
помогите пожалуйста решить, срочно, заранее спасибо Добавлено через 2 часа 54 минуты как найти всех потомков или всех предков для...

Процесс порождает 7 дочерних процессов-потомков
Процесс порождает 7 дочерних процессов-потомков. Процессы выводят сообщение о старте, выполняют sleep на случайное количество секунд (от 3...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru