ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.06.2019

Просмотров: 105

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа № 7

Студента ИТ 14-1 Красовского Абхая

Асинхронный ввод-вывод в режиме пользователя

Вариант №9

Цель: Получить навыки в следующих предметных областях:

  • работа с файлами в режиме ввода-вывода с перекрытием (input/output overlapped).


Индивидуальное задание

Реализовать задание взаимодействия процессов и асинхронного вывода-вывода с перекрытием с помощью функций CreateFile, ReadFile, WriteFile.

Код сервера:


#include <windows.h>

#include <iostream>

#include <conio.h>


using namespace std;


void main()

{

setlocale(LC_ALL, "rus");

char Text[] = "Этот текст получен с сервера через файл";

OVERLAPPED ov = {0};

HANDLE hFile;

if(hFile = CreateFile("C:\\Overlapped.txt", // Указатель на имя файла (устройства)

GENERIC_READ | GENERIC_WRITE, //Параметры доступа

FILE_SHARE_READ | FILE_SHARE_WRITE, //Разделяемый доступ

NULL, //безопасность

CREATE_ALWAYS, // Описание

FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, // Атрибуты файла

0)) // Файл шаблона

cout << "Файл успешно создан" << endl;

if (WriteFile(hFile, Text, sizeof(Text), 0, &ov))

cout << "Строка записана в файл" << endl;

CloseHandle(hFile);

_getch();

}



Код клиента:

#include <windows.h>

#include <iostream>

#include <conio.h>

#define BUFSIZE 512

using namespace std;


void main()

{

setlocale(LC_ALL, "rus");

OVERLAPPED ov = {0};

char Buf[BUFSIZE];

HANDLE hFile = (HANDLE)OpenFile("C:\\Overlapped.txt", (LPOFSTRUCT)Buf, OF_READWRITE);

ReadFile(hFile, Buf, sizeof(Buf), 0, &ov);

cout << Buf << endl;

CloseHandle(hFile);

_getch();

}


Результат:






















Смотрите также файлы