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

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

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

Показать сообщение отдельно
uglyPinokkio
325 / 228 / 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;
 
   }
 
Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru