Организация вычислительных процессов в ЭВМ. Лясин Д.Н - 12 стр.

UptoLike

Составители: 

12
ных операций записи могут переполнить буфер канала, заблокировав тем са-
мым дальнейшие попытки записи.
После создания анонимного канала два процесса могут обмениваться
информацией посредством вызова функций WriteFile для записи информации
в канал и ReadFile для чтения. Ниже приведены фрагменты программ, осу-
ществляющих запись и чтение информации в/из канала.
// Запись
информации в анонимный канал. phWrite- дескриптор записи, полу-
// ченный при открытии канала
BOOL bTest; //флаг результата выполнения операции записи
DWORD dwWrite; //количество записанных в канал байт
MSG msg; //передаваемая информация
msg.message=WM_USER; msg.lParam=20; msg.wParam=30;//заполняем струк
//туру msg
bTest=WriteFile(phWrite, &msg, sizeof(msg), &dwWrite, NULL);
if (!bTest) //если произошла ошибка
MessageBox(hWnd, “Невозможно передать данные”,”Ошибка записи”,
MB_OK); // выводим окно с сообщением об ошибке. Код ошибки можно
//
проанализировать функцией GetLastError()
Тогда в другом процессе должен присутствовать следующий фрагмент:
// Чтение информации из анонимного канала. phRead- дескриптор чтения,
//полученный при открытии канала
BOOL bTest; //флаг результата выполнения операции чтения
DWORD dwRead; //количество считанных из канала байт
MSG msg;
bTest=ReadFile(phRead, &msg, sizeof(msg), &dwRead, NULL);
if (!bTest) //если произошла ошибка
ных операций записи могут переполнить буфер канала, заблокировав тем са-
мым дальнейшие попытки записи.
      После создания анонимного канала два процесса могут обмениваться
информацией посредством вызова функций WriteFile для записи информации
в канал и ReadFile для чтения. Ниже приведены фрагменты программ, осу-
ществляющих запись и чтение информации в/из канала.
// Запись информации в анонимный канал. phWrite- дескриптор записи, полу-
// ченный при открытии канала
BOOL          bTest;   //флаг результата выполнения операции записи
DWORD         dwWrite; //количество записанных в канал байт
MSG msg; //передаваемая информация
msg.message=WM_USER; msg.lParam=20; msg.wParam=30;//заполняем струк
                                                                 //туру msg
bTest=WriteFile(phWrite, &msg, sizeof(msg), &dwWrite, NULL);
if (!bTest)      //если произошла ошибка
  MessageBox(hWnd, “Невозможно передать данные”,”Ошибка записи”,
  MB_OK); // выводим окно с сообщением об ошибке. Код ошибки можно
              // проанализировать функцией GetLastError()


Тогда в другом процессе должен присутствовать следующий фрагмент:
// Чтение информации из анонимного канала. phRead- дескриптор чтения,
//полученный при открытии канала
BOOL          bTest;   //флаг результата выполнения операции чтения
DWORD         dwRead; //количество считанных из канала байт
MSG msg;


bTest=ReadFile(phRead, &msg, sizeof(msg), &dwRead, NULL);
if (!bTest)      //если произошла ошибка




                                      12