Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »