Форум программистов, компьютерный форум CyberForum.ru

Реализация 2х потоков, работа с буфером, механизм семафоров - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с строками http://www.cyberforum.ru/cpp-beginners/thread112881.html
Помогите с заданием пожалуйста. Задание:"Отпечатать второе и третье слова произвольного текста."
C++ разбить строку в массив Как разбить массив символов в отдельный массив по слову?Я вот что-то написал,проде бы правильно,но когда например ввожу строку "heavy metal rulit vsegda",то mas выводится "rilitMMMMvsegda". int i,j,g; char mas1,mas2; cout<<"Vvedite stroku "; gets(mas1); j=0;g=0; for(i=0;i<=99;i++){ http://www.cyberforum.ru/cpp-beginners/thread112876.html
C++ одномерный и двумерный массивы
1.составить алгоритм,с помощью одномерного массива Заполнить массив числами 2.1, 2.2, 2.3, …, 2.18. 2.составить алгоритм,с помощью двумернонго массива Дан двумерный массив размером 10х10. Вывести на экран часть массива расположенную выше побочной диагонали. выручите ,милейшие!))
C++ вид поиска, метод поиска
Написать программу, реализующую один из алгоритмов программного поиска данных в информационном массиве, расположенном в оперативной памяти (по желанию, можно считывать данные из файла), используя выбранные в соответствии с вариантом из табл. 2 формат ключа, формат других полей записи, вид и метод поиска. Формат ключа int, char, float, char Вид поиска: по совпадению Формат неключевых полей...
C++ Проверить баланс скобок http://www.cyberforum.ru/cpp-beginners/thread112808.html
:)Здравствуйте. Помогите пожалуйста с задачей. Проверить имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающихся и закрывающихся скобок, со следующими свойствами: а) Открывающаяся скобка всегда предшествует закрывающейся. б) Первый и последний символ...
C++ Чтение файла Как в си прочитать файл побайтово? подробнее

Показать сообщение отдельно
shoonya
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 3
05.04.2010, 14:22  [ТС]     Реализация 2х потоков, работа с буфером, механизм семафоров
К сожалению программирование для меня непрофильный предмет, дается очень мало часов => очень тяжело разобраться. Только приступаю к решению данной задачи.
В универе мы писали две проги: Первая программа (MASTER) запускает вторую (SLAVE) и переходит в режим ожидания. Программа SLAVE читает идентификатор процесса (PID, Process Identifier) запустившей ее программы из командной строки и ожидает завершения работы программы MASTER.
Это и есть реализация Двух потоков?

Добавлено через 4 минуты
Вот листинг того, что у меня есть:
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
//Программа master
#include <windows.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
 
void main(int argc, char *argv[])
{
    char cmd[128];
    if (argc!=1)
        strcpy(cmd,argv[1]);
    else
        strcpy(cmd,"slave.exe");
    int pid=GetCurrentProcessId();
    sprintf(cmd+strlen(cmd)," %d",pid);
    cout<<"Master: Starting:" << cmd << "\n";
    cout.flush();
    STARTUPINFO info;
    memset(&info,0,sizeof(info));
    info.cb=sizeof(info);
    PROCESS_INFORMATION pinfo;
    if (!CreateProcess(NULL,cmd,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
        NULL,NULL,&info,&pinfo))
    {
        cout<<"Master: Slave процесс не запущен\n";
        cout<<"Master: проверьте правильность указания имени процесса в коммандной строке";
    }
    cout<<"Master: Sleeping\n";
    cout.flush();
    Sleep(15000);
    cout<<"Master: Exiting\n";
    exit(0);
}
//Программа Slave
#include <windows.h>
#include <iostream.h>
#include <stdio.h> // temp
 
void main(int argc,char *argv[])
{
    if (argc!=2)
    {
        cerr<<"Slave: Необходимо сначала запустить MASTER.EXE.\n";
        exit(1);
    }
    int pid=atoi(argv[1]);
    HANDLE process=OpenProcess(PROCESS_QUERY_INFORMATION | SYNCHRONIZE, FALSE,pid);
    if (!process) cout<<"Slave:Ошибка открытия процесса\n";
    cout<<"Slave:Ожидание завершения процесса Master\n";
    cout.flush();
    if (WaitForSingleObject(process,INFINITE)==STATUS_WAIT_0)
        cout<<"Slave: Master завершил работу\n";
    else
        cout<<"Slave: Не известная ошибка\n";
    exit(0);
}

На основе MASTER мне нужно сделать генерацию чисел, а на основе SLAVE считывание и вывод на экран, я правильно поняла?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru