Форум программистов, компьютерный форум, киберфорум
Наши страницы

Чтение/запись в файл с использованием многопоточности - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скиньте литературу по спискам в C++ http://www.cyberforum.ru/cpp-beginners/thread1238914.html
Скиньте литературу по спискам в С++, НО которая расчитана на полного чайника (т.е. где все будет до мелчайших подробностей расписано). Может кто учился по такой, может знает.
C++ Как создать фигуры для тетриса? Привет всем! Захотел написать простенькую игру и решил начать с тетриса. Пишу в visual studio 2013 c++. Как и всегда появляются проблемы: Нарисовал текстурки для фигур, но я не знаю как из текстур... http://www.cyberforum.ru/cpp-beginners/thread1238907.html
C++ Указатель на не объявленную структуру
Допустим я описал структуру. Объявил указатель на эту структуру. struct MyStruct{ char ch; int i; }; std::cout<<sizeof(MyStruct); MyStruct * pMyStruct; Из за выравнивания размер...
C++ Если память для объекта выделяется динамически (строка 33), сортировка sort не работает
Если память для объекта выделяется динамически (строка 33), сортировка sort не работает, если память не выделять, все работает. Как избежать проблему? #include <iostream> #include <list>...
C++ Создайте класс Polar, который предназначен для хранения полярных координат (радиуса и угла) http://www.cyberforum.ru/cpp-beginners/thread1238846.html
Задача такова: Только для любителей математики: создайте класс Polar, который предна- значен для хранения полярных координат (радиуса и угла). Перегрузите операцию + для выполнения сложения для...
C++ Тяжело ли написать утилитку, которая работает как DOS-команда "pause" Тяжело ли написать утилитку, которая работает как DOS-команда "pause", но с автопродолжением через (например) 10 секунд? Научился обрабатывать таймер в бесконечном цикле. Самописный Sleep();... подробнее

Показать сообщение отдельно
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
08.08.2014, 07:58
Цитата Сообщение от ct0r Посмотреть сообщение
Народ, я нифига не понял. Объясните мне, на кой все так усложнять?
Это отмапить файл и посчитать в цикле хеши сложно?

Цитата Сообщение от Afrit Посмотреть сообщение
Я не знаю, как разбить созданное окно по блокам.
Примерно так:

Кликните здесь для просмотра всего текста

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
   while (qwFileSize > 0)
   {
 
      // определяем, сколько байтов надо спроецировать 
      DWORD dwBytesInBlock = sinf.dwAllocationGranularity;
      int n_blocks = omp_get_max_threads();
      DWORD dwBytesInParallelBlocks = dwBytesInBlock*n_blocks;
      std::vector<unsigned int> crc_s;
      crc_s.resize(n_blocks,0);
      if (qwFileSize < dwBytesInParallelBlocks)
      {
         n_blocks = 1;
         if (qwFileSize < dwBytesInBlock)
         {
            dwBytesInBlock = (DWORD)qwFileSize;
         }
         dwBytesInParallelBlocks = dwBytesInBlock;
      }
 
      PBYTE pbFile = (PBYTE)MapViewOfFile(hFileMapping, FILE_MAP_READ, (DWORD)(qwFileOffset >> 32), // начальный байт 
         (DWORD) (qwFileOffset & 0xFFFFFFFF), // в файле
         dwBytesInParallelBlocks); // число проецируемых байтов
 
      #pragma omp parallel for
      for(int n_block=0;n_block<n_blocks;n_block++)
      {
         crc_s[n_block] = CRC32_function(pbFile+dwBytesInBlock*n_block, dwBytesInBlock);
      }
 
      for(int n_block=0;n_block<n_blocks;n_block++)
      {
         cout<<"n_block "<<n_block<<" crc "<<crc_s[n_block]<<endl;
      }
 
      // прекращаем проецирование представления, чтобы в адресном пространстве 
      // не образовалось несколько представлений одного файла
 
      UnmapViewOfFile(pbFile);
 
      // переходим к следующей группе байтов в файле 
      qwFileOffset += dwBytesInParallelBlocks;
      qwFileSize -= dwBytesInParallelBlocks;
 
   }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru