Это командная мультисеть, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
multitee - отправлять несколько входов на несколько выходов
СИНТАКСИС
мультити [ -bразмер ] [ -vQq ] [ fd-fd, fd, fd ... ] ...
ОПИСАНИЕ
многослойный отправляет несколько входов на несколько выходов. Учитывая аргумент формы fdin-
fdout, fdout, fdout ... он отправит весь ввод в файловый дескриптор фдин к каждому дескриптору
fdout. Он выйдет, когда все фдин закрыты. Несколько аргументов могут указывать выходы из
тоже самое фдин.
-fdout и , fdout эквивалентны. Если есть ошибка любого вида (включая SIGPIPE) в
писать в фдаут, многослойный выводит предупреждение на stderr и забывает вывод полностью. (Этот
не влияет на чтение фдин.) If -fdout заменяется на : fdout тогда многослойный выйдет
при любых сообщениях SIGPIPE от этого дескриптора.
Кроме того, efd означает, что как только фдин достигает конца файла, fd считается достижимым
EOF тоже. многослойный будет предупреждать о любых ошибках ввода, а затем рассматривать их как EOF.
В отличие от тройник, многослойный изо всех сил пытается продолжить обработку всех дескрипторов, даже если некоторые
из них заблокированы. Однако он застрянет при чтении, если кто-то другой читает
дескриптор и сначала захватывает ввод; он застрянет при записи, если входной пакет
не подходит к выходному патрубку. (Если дескриптор вывода установлен NDELAY, и многослойный
получает EWOULDBLOCK, он записывает по одному байту, чтобы избежать синхронизации канала
проблемы.) Хотя есть соблазн установить дескрипторы в неблокирующий режим, это
опасно: другие процессы, использующие тот же открытый файл, могут не справиться с NDELAY.
Невероятно, что ни один из основных поставщиков UNIX или комитетов по стандартам не подошел
с истинным неблокирующим вводом-выводом для каждого процесса. (В BSD 4.3 и ее вариантах мультител
быстро отправлять сигналы таймера самому себе, чтобы прервать любой блокирующий ввод / вывод. Однако это не может
работают под BSD 4.2, и, как правило, это больше проблем, чем стоит.) Программа может установить
NDELAY перед вызовом многослойный если он знает, что никакие другие процессы не будут использовать то же самое открытое
.
многослойный также временно прекратит чтение дескриптора ввода, если более 8192 байтов
ожидают обработки на одном из его выходных дескрипторов. Это не влияет на независимые fdin-fdout
пар.
многослойный имеет несколько флагов:
-bразмер Измените размер входного буфера с 8192 на размер. В отличие от предыдущей версии
мультител эта версия не требует буферов вывода и не копирует
байты в любом месте между read () и write ().
-v Подробный.
-q Тихо. многослойный никоим образом не будет использовать stderr (кроме, конечно, если
дескриптор 2 указывается в аргументе).
-Q Нормальный уровень многословия.
ВЫХОД VALUE
0 нормально. 1 для сообщений об использовании. 3 если многослойный заканчивается память. 4 в различных
невозможные ситуации.
ДИАГНОСТИКИ
смертельный: внешний of Память
многослойный закончилась память.
предупреждение: не могу читать дескриптор
Интуитивно понятный.
предупреждение: не могу записывать дескриптор
Интуитивно понятный.
ПРИМЕРЫ
мультитул 0-1,4,5 4> foo 5> bar
Такой же как тройник Foo бар за исключением лучшего поведения блокировки.
мультитул 0: 1 3: 1 4: 1,2 6: 7
Объедините несколько источников в выход, одновременно копируя 6 в 7 и записывая вход 4 в
2.
tcpclient servermachine smtp multitee 0: 7 6: 1e0
Такой же как мконнект по Солнцам. E0 сообщает multitee завершить работу, как только сетевое соединение
закрывается.
ОГРАНИЧЕНИЯ
многослойный ожидает, что все задействованные дескрипторы будут открытыми. В настоящее время действует закрытый дескриптор
как открытый дескриптор, в который невозможно записать.
Используйте мультисеть онлайн с помощью сервисов onworks.net