95 lines
5.7 KiB
HTML
95 lines
5.7 KiB
HTML
<title>send</title>
|
||
<CENTER><h1>send</h1></CENTE>
|
||
<DIR><FONT face=Arial><FONT size=+1>Выполнить команду в другом
|
||
приложении.</FONT></FONT> <BR>
|
||
<LI><FONT face=Arial><FONT size=+1><A
|
||
href="tk.html#send СИНТАКСИС">Синтаксис</A></FONT></FONT>
|
||
|
||
<LI><FONT face=Arial><FONT size=+1><A
|
||
href="tk.html#send ОПИСАНИЕ">Описание</A></FONT></FONT>
|
||
|
||
<LI><FONT face=Arial><FONT size=+1><A
|
||
href="tk.html#send ИМЕНА ПРИЛОЖЕНИЙ">Имена
|
||
приложений</A></FONT></FONT>
|
||
<LI><FONT face=Arial><FONT size=+1><A
|
||
href="tk.html#send БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД">Блокировка
|
||
посылаемых команд</A></FONT></FONT>
|
||
<LI><FONT face=Arial><FONT size=+1><A
|
||
href="tk.html#send БЕЗОПАСНОСТЬ">Безопасность</A></FONT></FONT>
|
||
</LI></DIR><A name="send СИНТАКСИС"></A><B><FONT face=Arial><FONT
|
||
size=+1>СИНТАКСИС</FONT></FONT></B>
|
||
<DIR><FONT face=Arial><FONT size=+1><B>send</B> ?<I>параметры</I>? <I>прил
|
||
кмд</I> ?<I>арг арг ...</I>?</FONT></FONT></DIR><A
|
||
name="send ОПИСАНИЕ"></A><B><FONT face=Arial><FONT
|
||
size=+1>ОПИСАНИЕ</FONT></FONT></B>
|
||
<DIR><FONT size=+1>Обеспечивает выполнение команды, заданной параметром
|
||
<I>кмд</I> (с аргументами, заданными параметрами <I>арг</I>), в приложении
|
||
с именем <I>прил</I>. Возвращает результат выполненной команды или ошибку.
|
||
Аргумент <I>прил</I> может задавать имя любого из приложений, главное окно
|
||
которого расположено на том же дисплее, что и главное окно запрашивающего
|
||
приложения; запрошенное приложение не обязано управляться тем же
|
||
процессом. Если аргументы отсутствуют, то выполняемая команда полностью
|
||
определяется аргументом <I>кмд</I>. Если присутсвует один или несколько
|
||
аргументов, то они конкатенируются с <I>кмд</I> в точности так же, как и в
|
||
команде <B><FONT face=Arial><A
|
||
href="eval">eval</A></FONT>.</B></FONT>
|
||
|
||
<P><FONT face=Arial><FONT size=+1>Если первые аргументы команды начинаются
|
||
с дефиса "-", то они интерепретируются как параметры. В настоящее время
|
||
допустимы следующие параметры:</FONT></FONT>
|
||
<P><B><FONT face=Arial><FONT size=+1>-async</FONT></FONT></B>
|
||
<DIR>
|
||
<DIR><FONT face=Arial><FONT size=+1>Запрашивает асинхронный вызов. В этом
|
||
случае выполнение команды <B>send</B> завершается немедленно, не дожидаясь
|
||
завершения выполнения команды, заданной аргументом <I>кмд</I>, в
|
||
приложении-адресате; результат выполнения посланной команды или
|
||
возникающие при выполнении ошибки игнорируются. Если адресат управляется
|
||
тем же процессом, что и посылающее приложение, то параметр <B>-async</B>
|
||
игнорируется.</FONT></FONT></DIR></DIR><B><FONT size=+1><FONT
|
||
face=Arial>-displayof</FONT> </FONT></B><I><FONT face=Arial><FONT
|
||
size=+1>имяПути</FONT></FONT></I>
|
||
<DIR>
|
||
<DIR><I><FONT size=+1>Указывает на то, что главное окно
|
||
приложения-адресата должно быть на том же дисплее, что и окно, заданное
|
||
аргументом имяПути, а не на дисплее посылающего
|
||
приложения.</FONT></I></DIR></DIR><B><FONT face=Arial><FONT
|
||
size=+1>--</FONT></FONT></B>
|
||
<DIR>
|
||
<DIR><FONT face=Arial><FONT size=+1>Единственная задача этого параметра
|
||
завершить список параметров. Он используется только если значение
|
||
аргумента <I>прил</I> может начинаться с дефиса
|
||
"-".</FONT></FONT></DIR></DIR></DIR><A
|
||
name="send ИМЕНА ПРИЛОЖЕНИЙ"></A><B><FONT face=Arial><FONT size=+1>ИМЕНА
|
||
ПРИЛОЖЕНИЙ</FONT></FONT></B>
|
||
<DIR><FONT size=+1><FONT face=Arial>Первоначально имя приложения
|
||
определяется именем программы или скрипта, его создающего. Имя приложения
|
||
можно узнать и изменить с помощью команды <B>appname</B></FONT><B>
|
||
Tk.</B></FONT></DIR><A
|
||
name="send БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД"></A><B><FONT face=Arial><FONT
|
||
size=+1>БЛОКИРОВКА ПОСЫЛАЕМЫХ КОМАНД</FONT></FONT></B>
|
||
<DIR><FONT size=+1>Если отменить в приложении команду<B> <FONT
|
||
face=Arial>send</FONT></B><FONT face=Arial> (например, выполнив команду
|
||
<B>rename send {}</B>), то приложение перестанет реагировать на
|
||
поступающие запросы <B>send</B> и само не сможет посылать запросы.
|
||
Восстановить взаимодействие приложений можно, выполнив команду
|
||
<B>appname</B></FONT><B> Tk.</B></FONT></DIR><A
|
||
name="send БЕЗОПАСНОСТЬ"></A><B><FONT face=Arial><FONT
|
||
size=+1>БЕЗОПАСНОСТЬ</FONT></FONT></B>
|
||
<DIR><FONT size=+1>Команда<B> <FONT face=Arial>send</FONT></B><FONT
|
||
face=Arial> является потенциальным источником серьезных нарушений защиты,
|
||
так как любое приложение, способное соединиться с Вашим X сервером, может
|
||
посылать скрипты в Ваше приложение. С помощью Tcl присланные скрипты могут
|
||
читать Ваши файлы и выполнять запись в них и запускать подпроцессы под
|
||
Вашим именем. Особенно уязвимо управление доступом вида <B>xhost</B>, так
|
||
как всякий пользователь, заведенный на головном компьютере, может
|
||
связаться с Вашим сервером; если же это управление доступом отключить, то
|
||
связь становится возможной вообще для любого пользователя, где бы он ни
|
||
находился. Чтобы обеспечить хотя бы минимальную защиту, Tk проверяет
|
||
систему управления доступом на сервере и отвергает все присланные команды,
|
||
если либо (а) xhost-система управления доступом отключена (так что лишь
|
||
некоторые головные компьютеры могут устанавливать связь); либо (б) список
|
||
головных компьютеров, которым такая связь разрешена, пуст. В результате
|
||
никакое приложение не сможет связаться с Вашим сервером, если у него не
|
||
будет дополнительных прав (например, предоставленных
|
||
<B>xauth</B></FONT><B>).</B></FONT></DIR>
|