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

Переделать программу, чтобы она работала без каналов, а только с сигналами. Оплата 300 рублей

10.01.2018, 22:05. Показов 1027. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно переделать программу, чтобы она работала без каналов, а только с помощью сигналов.
Программа запускается через терминал на Linux. Оплата 300 рублей.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <unistd.h>
#include <sys/wait.h>
#include <time.h>
#include <cstdlib>
#define FIFO_FILE   "MYFIFO"
 
 
void f2(int sig)
{
switch(sig)
    {
        case SIGUSR1:
 
            break;
        default:
 
            break;
    }
};
 
int main(void)
{
FILE *fp;
mknod(FIFO_FILE, S_IFIFO|0666, 0);
double i=0; 
double i2=0;
int t;
int t2=0;
int t3;
int n=0;
double q;
double z;
int m=1;
double u=0;
double y=0;
double k=0;
double j=0;
pid_t pid;
srand(time(0));
 
char buf[80];
 
printf("Добро пожаловать в программу принятия и обработки заявки!\n");
printf("Время обработки заявки 5-7 секунд\n");
pid_t fork(void);
switch(pid=fork())
{
case 0:
fp = fopen(FIFO_FILE, "w");
while(1)
   {
t = (rand() % 50 + 1);
printf("Заявка сгенерирована\n");
kill(getppid(), SIGUSR1);
sprintf(buf, "%d", t*100);
fputs(buf, fp);
fgets(buf,sizeof(int), fp);
 
 
sleep(t);
 
}
 
default:
fp = fopen(FIFO_FILE, "r");
while(1)
{
signal(SIGUSR1,f2);
i=i+1;
if (i>20)
{
   printf("Заявка потеряна\n");
   i=i-1;
}
i2=i2+i;
m=m+1;
t = (rand() % 5 + 2);
fgets(buf,sizeof(int), fp);
 
t3=atoi(buf)/100;
q=(double)(t-t3)/t;
if (q>0)
{
i=i+q;
}
t2=t2+t;
printf("Начинаю обслуживание заявки № %d\n",n+1);
 
sleep(t);
printf("Выполнение заявки завершено\n");
n=n+1;
i=i-1;
q=n; z=t2;
printf("Интенсивность выходного потока %f\n",q/z);
q=i2;z=m;
printf("Средняя длина очереди %f\n",q/z);
}
}
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.01.2018, 22:05
Ответы с готовыми решениями:

Переделать программу, чтобы она работала не только с цифрами, но и с числами
Подскажите, как сделать ,чтоб эта программа работала не только с цифрами,но и с числами? (эта программа переводит выражение в...

Переделать готовую программу, чтобы она работала с файлом
здраствуйте форумчане! помогите переделать готовую программу, чтобы она работала с файлом. это готовая программа, без файлов. {№ 28 ...

Переделать программу, чтобы она работала не с числами, а с символами
пожалуйста помогите переделать прогу на работу с символами!!!!!!! сейчас прога работает только с числами!!! unit Unit1; ...

2
 Аватар для Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
11.01.2018, 11:36
Цитата Сообщение от Dasha___ Посмотреть сообщение
нужно переделать программу, чтобы она работала без каналов, а только с помощью сигналов.
Показанное - ужасно
Но вы передаёте данные от родительского процесса к дочернему:
Code
1
2
sprintf(buf, "%d", t*100);
fputs(buf, fp);
И как вы предлагаете обмениваться данными между процессами "только с помощью сигналов"?
Это ещё можно было бы как-то исхитриться (в таком простом случае) через сигналы реального времени ... но вы вряд ли (вместе с вашим преподавателем) что-то слышали про сигналы реального времени...
0
599 / 421 / 137
Регистрация: 02.10.2008
Сообщений: 1,798
Записей в блоге: 1
11.01.2018, 12:58
Только с сигналами тоскливо. Реально тоскливо.
Возможно препод требовал избавиться от каналов и обойтись обычными POSIX IPC - смотреть в сторону sys/msg.h и sys/shm.h
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.01.2018, 12:58
Помогаю со студенческими работами здесь

Переделать программу под класс. Т.е. чтобы она работала так же, но с классом
Дано вещественное число а и натуральное число n. Вычислить : а^1,a^2,a^3,..a^n. Операцию возведения в степень не использовать. ...

Как переделать программу так чтобы она работала в виде процесса а не формы
Здравствуйте. Подскажите пожалуйста как переделать программу так чтобы она работала в виде процесса, а не формы? И что там писать вместо...

Готовая программа, нужно переделать ее чтобы она работала с УКАЗАТЕЛЯМИ
Вычислить значение выражения тут Вычислить значение выражения (3a+4)/(a-в квадрате-5a-9) для а= 1,2,…100. Результат выполнения занести в...

Переделать программу, чтобы она выполнялась без использования примитива синхронизации Mutex
Необходимо переделать программу так, чтобы она выполнялась без использования примитива синхронизации Mutex. Есть идеи? Буду рад любой...

Здравствуйте, можно ли переделать прогу для того, чтобы она работала на виндовс 7?
.model tiny .486 .code org 100h start: mov ax,13h int 10h xor ax,ax int 33h


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

Или воспользуйтесь поиском по форуму:
3
Закрытая тема Создать тему
Новые блоги и статьи
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. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru