Программирование для Windows NT (том 2)

         

Fmap/Client


Исходные тексты приложения Fmap/Client, предназначенного для совместной работы с приложением Fmap/Server, представлены в листинге2.2.

Листинг 2.2. Файл fmap/client/client.c

#include <windows.h>

#include <stdio.h>

#include <conio.h>

// Идентификаторы объектов-событий, которые используются

// для синхронизации задач, принадлежащих разным процессам

HANDLE hEvent;

HANDLE hEventTermination;

// Имя объекта-события для синхронизации ввода и отображения

CHAR lpEventName[] =

  "$MyVerySpecialEventName$";

// Имя объекта-события для завершения процесса

CHAR lpEventTerminationName[] =

  "$MyVerySpecialEventTerminationName$";

// Имя отображния файла на память

CHAR lpFileShareName[] =

  "$MyVerySpecialFileShareName$";

// Идентификатор отображения файла на память

HANDLE hFileMapping;

// Указатель на отображенную область памяти

LPVOID lpFileMap;

int main()

{

  CHAR chr;

  printf("Mapped and shared file, client process\n"

    "(C) A. Frolov, 1996, Email: frolov@glas.apc.org\n"

    "\n\nPress <ESC> to terminate...\n");

 

  // Открываем объект-событие для синхронизации

  // ввода и отображения

  hEvent = OpenEvent(EVENT_ALL_ACCESS, FALSE, lpEventName);

 

  if(hEvent == NULL)

  {

    fprintf(stdout,"OpenEvent: Error %ld\n",

      GetLastError());

    getch();

    return 0;

  }

  // Открываем объект-событие для сигнализации о

  // завершении процесса ввода

  hEventTermination = OpenEvent(EVENT_ALL_ACCESS,

    FALSE, lpEventTerminationName);

 

  if(hEventTermination == NULL)

  {

    fprintf(stdout,"OpenEvent (Termination): Error %ld\n",

      GetLastError());

    getch();

    return 0;

  }

  // Открываем объект-отображение

  hFileMapping = OpenFileMapping(

    FILE_MAP_READ | FILE_MAP_WRITE, FALSE, lpFileShareName);

  // Если открыть не удалось, выводим код ошибки



Содержание  Назад  Вперед