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

Проекция файла! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ игра крестики нолики http://www.cyberforum.ru/cpp-beginners/thread1067105.html
Есть готовая игра,работающая,как мне добавить функцию sleep,чтобы заменить это: for(int i = 0; i < 400000000; i++) if (i%100000000==0) cout<<'.'; Сам код: #include <iostream> #include <clocale>
C++ Определить сумму элементов, расположеных на побочной и произведение элементов, расположенных на главной диагонали матрицы помогите решить задачи на C или C++: 3 Определить сумму элементов ,расположеных на побочной диагонали матрицы и произведение элементов ,расположенных на главной диагонали матрицы используя указатели http://www.cyberforum.ru/cpp-beginners/thread1067104.html
Определить время выполнения функции C++
Здравствуйте По условию контрольной мне необходимо написать ассемблерную вставку, реализующую обработку строки согласно варианту. Оформить ее в виде отдельной функции. Реализовать данную обработку строки также в виде функции на С++. Сравнить быстродействие обоих вариантов. Проблема в том как сравнить скорость выполнения в 1-ом и 2-ом случаях. Каким способом я смогу узнать время выполнения...
C++ Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно». Проверить работу класса. одна тема - одна задача. читайте правила форума
C++ Переставляя строки заданной матрицы, расположить их в соответствии с убыванием элементов http://www.cyberforum.ru/cpp-beginners/thread1067093.html
Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убывание элементов
C++ Рекурсия: нахождения суммы n первых членов геометрической прогрессии Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию: нахождения суммы n первых членов прогрессии подробнее

Показать сообщение отдельно
Lexa777
0 / 0 / 0
Регистрация: 10.11.2011
Сообщений: 84

Проекция файла! - C++

09.01.2014, 23:47. Просмотров 348. Ответов 2
Метки (Все метки)

Как доказать преподавателю: что я сделал для того что бы не было гонок программ???
Что та или иная программа не выполняется первой или не в свою очередь, что одна передала данные, вторая их приняла...

Помогите пожалуйста...спасибо заранее)


Написать две программы. Первая программа создает проекцию файла в памяти и выделяет для нее блок адресов размером 8 MB. Вторая программа подключается к уже существующей проекции, записывает в нее данные, и отключается от проекции. Первая программа читает данные из проекции, выводит их на печать, закрывает проекцию. Использовать функции CreateFileMapping, OpenFileMapping, MapViewOfFile, UnmapViewOfFile, CloseHandle. Должно быть убедительно продемонстрировано, что второй программе удалось записать данные в блок разделяемой памяти, и что первая программа получила эти данные.

master.c

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
#include <stdio.h>
#include <process.h>
#include <windows.h>
 
int main(void)
{
  HANDLE      hMapFile, hFile, event;
  char        *map_data;
  int i;
 
  hFile = CreateFile("Mydata.dat", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,
                     NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 
  hMapFile = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0,   "MapLab8");
  if (hMapFile != NULL && GetLastError() == ERROR_ALREADY_EXISTS) {
    printf("FileMapping handle %p exist!", hMapFile);
    CloseHandle(hMapFile);
    exit(1);
  }
  if(hMapFile == NULL) {
    printf("FileMapping handle not created!");
    exit(1);
  }
 
  event = CreateEvent(NULL, FALSE, FALSE, "MyEvent");
  if (event == NULL){
      printf("CreateEvent Failed!");
      exit(1);
  }
  WaitForSingleObject(event, INFINITE);
 
  map_data = (char *) MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 8*1024*1024);
  if(map_data == NULL) {
    printf("Can't lock mapzone!");
    exit(1);
  }
  for (i = 0; i < 8*1024*1024; i++) printf("%c", map_data[i]);
  
  UnmapViewOfFile(map_data);
  CloseHandle(hMapFile);
  CloseHandle(hFile); CloseHandle(event);
  return 0;
}
slave.c
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
#include <stdio.h>
#include <process.h>
#include <windows.h>
 
int main(void)
{
  HANDLE      hMap, event;
  char        *map_data;
  
  hMap = OpenFileMapping (FILE_MAP_ALL_ACCESS, FALSE, "MapLab8");
  if (hMap == NULL){
      printf ("Proection not exist!");
      exit(1);
  }
 
  event = OpenEvent(EVENT_ALL_ACCESS, FALSE, "MyEvent");
  if (event == NULL){
      printf("OpenEvent Failed!");
      exit(1);
  }
 
  map_data = (char*) MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 8*1024*1024);
  if (map_data == NULL){
     printf("Can't lock mapzone!");
     exit(1);
  }
  strcpy (map_data, "Hie! It's me - slave.c\n");
  
  SetEvent(event);
  UnmapViewOfFile(map_data);
  CloseHandle(hMap); CloseHandle(event);
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru