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

Процессы - Slave и Master

13.01.2014, 18:02. Показов 3177. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят как правильно запускать процессы slave и master? они должны находится в 1 папке или разных?как разные проекты?просто мы имеем 2 main
при запуске ерундистика происходит с ошибками,может кто то протестировать этот код?
Заранее спасибо!
Задание:
1. Написать программу SLAVE , которая выводит день недели по дате, переданной в качестве параметра. Если параметр не передан, вывести об этом сообщение и закончить программу. Если программа запущена из приложения MASTER, вывести на экран уникальный идентификатор приложения MASTER Если программа запущена сама по себе, вывести об этом информацию.

2. Написать приложение MASTER которое:

а) генерирует дату (день, месяц, год – 2000...2010), запускает приложение SLAVE и передает в качестве параметров сгенерированную дату и уникальный идентификатор процесса (MASTER). При завершении программы SLAVE завершается MASTER

3. Продемонстрировать совместную работу двух приложений. Для этого на экран должна выводиться достаточно подробная информация о ходе выполнения каждого из процессов.

Slave:
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
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
int getDayNumber(int,int,int);
 
void main(int argc, char *argv[]){
    if (argc == 1){
        cout << "S: No parameters !" << endl;
    }
    else{
        if (argc > 3){
            int day = atoi(argv[1]);
            int month = atoi(argv[2]);
            int year = atoi(argv[3]);
            DWORD curPId = GetCurrentProcessId();
            cout << "S: This process PID is " << curPId << endl;
            string Days[7] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
            cout << "S: " << endl
                << "day :" << day << endl
                << "month :" << month << endl
                << "year :" << year << endl
                << "Day Of the week " << Days[getDayNumber(day, month, year)] << endl;
            if (argc > 4){
                char* masterPid = argv[4];
                cout << "S: pid from my master!" << masterPid << endl;
            }
        }else{
            cout << "Need more parameters(day,month,year)" << endl;
        }
    }
    system("PAUSE");
}
 
int getDayNumber(int day, int month, int year){
    static int t[] = {0, 3,2,5,0,3,5,1,4,6,2,4};
    year -= month < 3;
    return (year + year / 4 - year / 100 + year / 400 + t[month - 1] + day) % 7;
}
Master:
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
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
 
#include "windows.h"
#include <iostream>
 
 
using namespace std;
 
void main(){
 
    DWORD dwExitCode;
    STARTUPINFO cif;
    ZeroMemory(&cif, sizeof(STARTUPINFO));
    PROCESS_INFORMATION pi;
    DWORD PID = GetCurrentProcessId();
    cout << "M: This process PID is " << PID << endl;
    char argvPID[6] = " ";
    char buffer[20];
    char *pointer = _itoa(PID, buffer, 10); //write master ID 10 - number type
    strcat(argvPID, buffer);
    
    char date[12] = " ";
    char space[2] = " ";
    int month = 12;
    pointer = _itoa(month, buffer, 10);
    strcat(date, buffer);
    strcat(date, space);
    int day = 16;
    pointer = _itoa(day, buffer, 10);
    strcat(date, buffer);
    strcat(date, space);
    int year = 2013;
    pointer = _itoa(year, buffer, 10);
    strcat(date, buffer);
 
    char result[MAXCHAR] = "C:\\";
    strcat(result, space);
    strcat(result, date);
    strcat(result, space);
    strcat(result, argvPID);
    if (CreateProcess(NULL, (char *)result,
        NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &cif, &pi) == TRUE){
        if (WaitForSingleObject(pi.hProcess, INFINITE) != WAIT_FAILED){
            GetExitCodeProcess(pi.hProcess, &dwExitCode);
        }
        CloseHandle(pi.hProcess);
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2014, 18:02
Ответы с готовыми решениями:

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

Master/Slave
Доброго времени суток! Вот играюсь в доктора Морро - хочу вынуть хард из одного системника в другой. Но немножко не понял как устанавливать...

Master-slave в pgpool
Добрый день, есть два сервера, нужно чтобы они работали в режиме master-slave, но через pgpool. Запуталась в конфигах((((( 1. елси...

1
30 / 10 / 1
Регистрация: 14.03.2013
Сообщений: 53
13.04.2014, 16:30
Цитата Сообщение от Gazza Посмотреть сообщение
int getDayNumber(int day, int month, int year){
static int t[] = {0, 3,2,5,0,3,5,1,4,6,2,4};
year -= month < 3;
return (year + year / 4 - year / 100 + year / 400 + t[month - 1] + day) % 7;
}
Приветствую! Я непонял принцип работы этой функции.. кто нибудь может пояснить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2014, 16:30
Помогаю со студенческими работами здесь

Реализация Master/Slave SPI
Всем привет)) парни пмгите найти ошибку) уже голову сломал)) Вообщем есть мастер атмега16 и слэйв атмега8. Пишу в атмелстудио 6. Надо...

I2C Master/Slave и микроконтроллеры
Возможна ли следующая реализация системы: Микропроцессор задает шину y2s, к шине подключаются микроконтроллеры, которые для МП...

Как сменить Slave на Master?
ПОдскаите пожалуйста как сменить Slave на Master? у меня стоит SATA

[РЕШЕНО] SPI. 5v (Master) --> 3.3v(Slave). Сопряжение.
Приветствую. Что-то у меня не получается считатывать из SD(3.3в) карточки данные в ATmega128 (5v). Раньше работало, но карточка висела...

STM32F4 SPI Master + STM32F103 Slave
Добрый день, столкнулся со странной проблемой SPI. Заключается она в смещении последнего или первого бита посылки. Если оба SPI настраивать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru