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

Процессы и сигналы

23.12.2012, 15:55. Показов 2166. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня такое задание "Процесс 1 открывает файл и порождает потомков 2 и 3. Потомки пишут в файл по N байт и завершают работу. После этого процесс 1 считывает данные из файла и выводит на экран. Объяснить полученный результат."
Я попытался написать программу, но ограничился на том, что по идее процесс 1 порождает потомков 2 и 3, и они по очереди пишут в файл и завершаются. Причем процесс 3 посылает сигнал процессу 1. На этом я остановился, потому что компилятор выдал мне кучу ошибок.
Скажите, что неправильно?
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
#include <fcntl.h>
#include <stdio.h>
#include <signal.h>
int f2(int), f3(int);
int fd, pid1, pid2, pid3, st, c2 = "2", c3 = "3";
void main(void)
{ 
 fd = open("file", O_CREAT | O_RDWR | O_TRUNC, 0666);
 printf("Process 1, pid = %d:\n", getpid());
 pid2 = fork();
 if (pid2 == 0) 
  { 
   printf("Process 2, pid = %d:\n", getpid());
   signal(SIGUSR2, f2);
   pid3 = fork();
   if (pid3 == 0) 
    { 
     printf("Process 3, pid = %d:\n", getpid());
     signal(SIGUSR3, f3);
     sleep(2);
     printf("Process 3: end\n");
    } 
   if (pid3 < 0) printf("Cann't create process 3: error %d\n", pid3);
   wait(&st);
   printf("Process 2: end\n");
  }
 int f2(int signum)
  { 
   signal(SIGUSR2, f2);
   write(fd, &c2, 1);
   printf ("child 2 write to file, pid = %d", getpid());
  }
 int f3(int signum)
  {
   signal(SIGUSR3, f3);
   write(fd, &c3, 1);
   printf ("child 3 write to file, pid = %d", getpid();
   kill(pid1, SIGALRM);
  } 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2012, 15:55
Ответы с готовыми решениями:

Процессы и сигналы на Ubuntu
создать два процесса и сделать так что бы 1 посылал второму сигнал usr1 а второй первому usr2 и так до бесконечности

Процессы и сигналы (выдает ошибки)
Здравствуйте уважаемые программисты, необходимо было написать программу: Процесс 1 открывает файл и после этого порождает потомка 2,...

ПРОЦЕССЫ И СИГНАЛЫ ОС UNIX
Здравствуйте,очень нужна Ваша помощь в создании программы на C++. Владея, исключительно, только теоритическими навыками в данной области,...

1
0 / 0 / 0
Регистрация: 24.10.2012
Сообщений: 33
24.12.2012, 23:22  [ТС]
Можно закрывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2012, 23:22
Помогаю со студенческими работами здесь

И снова процессы и сигналы
доброго дня всем, снова набивший всем оскомину вопрос о процессах и сигналах. есть такой код #include &lt;sys/wait.h&gt; #include...

Что значат эти сигналы (vmware w, bios сигналы)?
Создаю машину с Kali, при запуске если стоит bios 1 длинный сигнал , если uefi 1 длинный и 1 короткий сигнал, XP ставится нормально, в чем...

Замирает компьютер, все процессы замораживаются, но курсор передвигается и некоторое время можно переключатся на другие процессы
Добрый Вечер. Суть проблемы, собрал компьютер на базе: CPU: AMD FX-8320 Mать: AsRock 990FX Extreme3 Видео: AMD RADEON HD6950 ...

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

Сигналы
Изучаю сигналы и слоты на КУте. Заголовочник: class MySettings : public QDialog { Q_OBJECT public: explicit...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru