channel.f  Широковещательные каналы

Каналы предназначены для обмена информацией между программами. Обмен в основном идет в одну сторону - одна из программ, владеющая каналом, записывает в него данные, другие программы получают уведомление о новом сообщении и могут считать его. В принципе, программ, посылающих сообщение, также может быть несколько. Каналы реализованы как конструкция из системных объектов Windows NT - нескольких объединенных объектов разделяемой памяти, события и взаимного исключения. Широковещательные каналы рассылают сообщения как в рамках одной терминальной сессии Windows XP, так и между терминальными сессиями.

init-channels ( )
Инициализирует систему каналов. Слово должно вызываться до начала работы.
create-channel ( zname -- ch/0 )
Создает канало обмена с указанным именем, если такого канала до этого не существовало, и возвращает его дескриптор. Если такой канал уже есть, просто открывает его.
delete-channel ( ch -- )
Удаляет существующий канал. Если это слово не будет вызвано явно, то система уничтожит канал после закрытия программы.
write-channel ( a # ch -- )
Записывает информацию в канал. В существующей реализации длина записываемой строки не должна быть более 100 байтов.
read-channel ( buf ch -- buf # )
Ожидает появления данных в канале, затем копирует их в указанный буфер buf. Возвращает также длину данных. Поскольку слово при вызове сразу переходит в цикл ожидания, имеет смысл запускать его в отдельном потоке.