Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 13.03.2016
Сообщений: 3

Найдите все ошибки и недочёты в приведённом коде. Задача на асинхронный ввод-вывод

14.03.2016, 16:01. Показов 567. Ответов 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
34
35
36
37
38
#define CK_START_READ 0x0L
#define CK_READ 0x10L
#define CK_EXIT 0x20L
 
static HANDLE hFile = CreateFile("c:\\sample.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
 
static HANDLE hio = CreateIoCompletionPort(hFile, NULL, CK_READ, 0);
 
BOOL Read(LPVOID pData, DWORD dwDataSize)
{
  OVERLAPPED ovr;
  return ReadFile(hFile, pData, dwDataSize, NULL, &ovr);
}
void main()
{
  BYTE Buffer[100];
  LPOVERLAPPED pOvr;
  DWORD dwBytes;
  ULONG ulKey;
 
  while (TRUE)
  {
    if (GetQueuedCompletionStatus(hio, &dwBytes, &ulKey, &pOvr, INFINITE))
    {
       switch(ulKey)
       {
         case CK_START_READ:
             Read(Buffer, 100);   
             break;
         case CK_READ:
             PostQueuedCompletionStatus(hio, 0, CK_EXIT, NULL);
             break;
         case CK_EXIT: 
             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
34
35
36
37
38
39
40
#define CK_START_READ 0x0L
#define CK_READ 0x10L
#define CK_EXIT 0x20L
 
static HANDLE hFile = CreateFile("c:\\sample.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
 
static HANDLE hio = CreateIoCompletionPort(hFile, NULL, CK_READ, 0);
 
BOOL Read(LPVOID pData, DWORD dwDataSize)
{
  OVERLAPPED ovr;
  ovr.Offset = 0;
  return ReadFile(hFile, pData, dwDataSize, NULL, &ovr);
}
 
void main()
{
  BYTE Buffer[100];
  LPOVERLAPPED pOvr;
  DWORD dwBytes;
  ULONG ulKey;
 
  while (TRUE)
  {
    if (GetQueuedCompletionStatus(hio, &dwBytes, &ulKey, &pOvr, INFINITE))
    {
       switch(ulKey)
       {
         case CK_START_READ:
             Read(Buffer, 100);   
             break;
         case CK_READ:
             PostQueuedCompletionStatus(hio, 0, CK_EXIT, NULL);
             break;
         case CK_EXIT: 
             return 0;
       }
    }
  }
}
Если моя версия верна помогите объяснить преподавателю почему именно так
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2016, 16:01
Ответы с готовыми решениями:

Найдите ошибки и недочёты
Программа должна выводить: – номер варианта, назначение программы и ФИО автора; – информационные сообщения о необходимости ввода...

Найти ошибки в приведённом коде
Что здесь не правильно? using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2010 ...

Как исправить ошибки в приведённом коде?
Здравствуйте! Помогите пожалуйста исправить ошибки в программе. Program.cs: using System; using System.Collections.Generic; using...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2016, 16:01
Помогаю со студенческими работами здесь

Реализовать класс Bank (найти и исправить ошибки и недочёты в коде)
Что тут не так? Подскажите пж! 2 дня сижу и не понимаю как сделать этот чёртов банк! #include <iostream> #include...

Ввод/вывод структуры: найти и исправить ошибки в коде
Прога не запускатся, что-то не так с scanf. Не могу найти ошибку. #include <conio.h> #include <stdio.h> #include...

асинхронный ввод/вывод
задача состоит в том,что нужно умножить две матрицы размера n на n которые хранятся во внешней памяти и результат соответственно записать...

Асинхронный ввод/вывод
Помогите исправить ошибку в коде: #include <Windows.h> #define CK_START_READ 0x0L #define CK_READ 0x10L #define CK_EXIT...

Асинхронный файловый ввод-вывод
Всем привет! Есть задание: реализовать однопоточный сокет-сервер, который от кнесколькихлиентовв принимает название файлов и...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru