Форум программистов, компьютерный форум 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++ Вопрос про заполнение Vector - а http://www.cyberforum.ru/cpp-beginners/thread112819.html
Доброго всем времени суток. Вопрос следующий есть vector mxyz размерностью 26873856 = 5184*5184 = 72*72*36*48*3 надо после каждого mxyz вставить элемент из другого вектора grace (размерностью 5184), т.е. если это записать через двумерный массив то требуется из mxyz сделать mxyz Не могу понять куда трубуется вставить еще один push_back(), (и как он должен выглядеть ) чтобы это сделать int...
C++ Проверить баланс скобок :)Здравствуйте. Помогите пожалуйста с задачей. Проверить имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающихся и закрывающихся скобок, со следующими свойствами: а) Открывающаяся скобка всегда предшествует закрывающейся. б) Первый и последний символ... подробнее

Показать сообщение отдельно
shoonya
0 / 0 / 0
Регистрация: 05.04.2010
Сообщений: 3
05.04.2010, 14:22  [ТС]
К сожалению программирование для меня непрофильный предмет, дается очень мало часов => очень тяжело разобраться. Только приступаю к решению данной задачи.
В универе мы писали две проги: Первая программа (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