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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
slavikk07
3 / 3 / 0
Регистрация: 27.02.2013
Сообщений: 64
#1

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

21.12.2013, 15:28. Просмотров 516. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Написать две программы. Первая программа создает проекцию файла в памяти и выделяет для нее блок адресов размером 8 MB. Вторая программа подключается к уже существующей проекции, записывает в нее данные, и отключается от проекции. Первая программа читает данные из проекции, выводит их на печать, закрывает проекцию.
Программы сделал!

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;
}
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;
}
Как начать чтение файла, с 16гб, что нужно написать в место нулей в строчке с функцией MapViewOfFile... Там нужно только написать что нужно вместо нулей и всё)

СПАСИБО!

Добавлено через 1 минуту
Вопрос по теории! Код изменять не нужно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 15:28     Проекция файла
Посмотрите здесь:

Проекция файла! - C++
Как доказать преподавателю: что я сделал для того что бы не было гонок программ??? Что та или иная программа не выполняется первой или не...

Проекция точек на плоскость - C++
Привет форумчане! Есть 3D плоскость, заданна тремя точками: QVector3D p1 = QVector3D(12.0, 0.0, 12.0); QVector3D p2 =...

Существует ли проекция точки? - C++
Даны абсцисса и аппликата точки и значения типа величин a, b, c и d из уравнения плоскости a*x+b*y+c*z=d. Всё дано числами типа double....

Не работает проекция файла - C++ WinAPI
Привет всем. Проблема такая: COM порт принимает байты, и поток пишет их в файл. Если в функции write() использовать дескриптор...

Проекция 3Д на 2Д - Геометрия
Ну извиняйте Много прогуливал в школе :-http://www.enlight.ru/faq3d/articles/11.htm :) Добавлено через 1 час 34 минуты Вот еще...

ортогональная проекция - Математический анализ
Найти ортогональную проекцию функции у = x ^ 3 пространства С (0,1) на подпространство Е=L(1,x). Пожалуйста помогите!!!

проекция точки - Геометрия
РЕБЯТА, КОТОРЫЕ РАЗБИРАЮТСЯ В ЭТОМ УЖАСЕ,ПОМОГИТЕ ПОЖАЛУЙСТА В РЕШЕНИЕ. 1) Найти сумму координат проекции точки А (-2,14) на...

Стереографическая проекция - Геометрия
Здравствуйте, друзья! Мне нужна помощь со стереографической проекцией для интерфейса. Задача простая: нужно спроецировать точку сферы...

Проекция колес - AutoCAD
помогите спроецировать колеса (выделил на чертеже) тяжковато совсем с геометрией)

Проекция и перпендикуляр - Геометрия
Добрый день! Пожалуйста, объясните последовательно, как решается такое задание: Найти проекцию и перпендикуляр вектора (5,-2,4,0,3)...

AS 3.0 Проекция 3D координат - ActionScript
Помогите пожалуйста! Допустим есть скрипт: var S1:Sprite=new Sprite(); var S2:Sprite=new Sprite(); var S3:Sprite=new Sprite(); ...

Проекция фигуры - Геометрия
Здравствуйте! Задача: есть фигура a), при некотором ее масштабировании из нее получилась фигура b). Вопрос: какие координаты будет...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
Эксперт С++
15248 / 6880 / 1092
Регистрация: 02.05.2013
Сообщений: 11,265
Завершенные тесты: 1
21.12.2013, 15:49     Проекция файла #2
MapViewOfFile в качестве указателя файловой позиции принимает 64-битное число,
разбитое (видимо, для удобства) на два 32-битных DWORD-а, старший и младший.
16 ГБ - это в шестнадцатеричном виде 0x400000000, значит старший DWORD равен
четырем, а младший нулю.
slavikk07
3 / 3 / 0
Регистрация: 27.02.2013
Сообщений: 64
21.12.2013, 22:16  [ТС]     Проекция файла #3
СПАСИБО!
Yandex
Объявления
21.12.2013, 22:16     Проекция файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru