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

UptoLike

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

11
также на анонимные и именованные. Анонимные каналы не имеют строково-
го имени, используют меньше системных ресурсов при работе, но значитель-
но ограничивают возможности обмена (не поддерживают дуплексный обмен,
не работают в сетях). Именованные каналы имеют строковое имя и представ-
ляют более широкий спектр возможностей, в частности, обмен информацией
одного
сервера с несколькими клиентами. Именованные каналы поддержи-
ваются лишь в WindowsNT и Windows2000.
Анонимный канал можно создать функцией CreatePipe:
BOOL CreatePipe(
PHANDLE phRead; //указатель на дескриптор чтения
PHANDLE phWrite; //указатель на дескриптор записи
LPSECURITY_ATTRIBUTES lpsa; //атрибуты безопасности
DWORD dwPipeSize //размер буфера канала
);
Создав канал, данная функция возвращает TRUE, и в параметры
phRead и phWrite записывает дескрипторы для чтения и записи информации.
Тот
процесс, который будет записывать информацию в канал функцией
WriteFile, должен использовать дескриптор phWrite, другой процесс должен
читать информацию из канала функцией ReadFile посредством дескриптора
phRead. При этом необходимо передать один из дескрипторов (какого имен-
нозависит от желаемого направления передачи данных) процессу-клиенту
канала. Проще всего передать дескриптор дочернему процессу через команд-
ную
строку, поэтому обычно анонимные каналы используются для связан-
ных (родительских и дочерних) процессов.
Параметр dwPipeSize определяет, какой максимальный объем инфор-
мации может храниться в канале. Дело в том, что информация из канала уда-
ляется только при выполнении операции чтения, и несколько последователь-
также на анонимные и именованные. Анонимные каналы не имеют строково-
го имени, используют меньше системных ресурсов при работе, но значитель-
но ограничивают возможности обмена (не поддерживают дуплексный обмен,
не работают в сетях). Именованные каналы имеют строковое имя и представ-
ляют более широкий спектр возможностей, в частности, обмен информацией
одного сервера с несколькими клиентами. Именованные каналы поддержи-
ваются лишь в WindowsNT и Windows2000.
     Анонимный канал можно создать функцией CreatePipe:
BOOL CreatePipe(
           PHANDLE phRead;       //указатель на дескриптор чтения
           PHANDLE phWrite;      //указатель на дескриптор записи
           LPSECURITY_ATTRIBUTES lpsa; //атрибуты безопасности
           DWORD dwPipeSize      //размер буфера канала
                   );
     Создав канал, данная функция возвращает TRUE, и в параметры
phRead и phWrite записывает дескрипторы для чтения и записи информации.
Тот процесс, который будет записывать информацию в канал функцией
WriteFile, должен использовать дескриптор phWrite, другой процесс должен
читать информацию из канала функцией ReadFile посредством дескриптора
phRead. При этом необходимо передать один из дескрипторов (какого имен-
но – зависит от желаемого направления передачи данных) процессу-клиенту
канала. Проще всего передать дескриптор дочернему процессу через команд-
ную строку, поэтому обычно анонимные каналы используются для связан-
ных (родительских и дочерних) процессов.
     Параметр dwPipeSize определяет, какой максимальный объем инфор-
мации может храниться в канале. Дело в том, что информация из канала уда-
ляется только при выполнении операции чтения, и несколько последователь-




                                   11