send(3tk)

NAME
send - 在一个不同的应用的执行一个命令

总览 SYNOPSIS
send ?options? app cmd ?arg arg ...?

描述 DESCRIPTION

这个命令安排在叫做 app 的应用中执行 cmd (和 args)。它返回这个命令执行的结果或错误。App 可以是其主窗口在容纳发送者的主窗口的显示器上的任何应用的名字；不需要在同一个进程中。如果不存在 arg 参数，则要执行的这个命令完全的包含在 cmd 参数内。如果存在一个或多个 args，则把它们串联起来形成要执行的命令，就象 eval 命令那样。

如果这个命令的最初的参数开始于“-”，则把它们作为选项对待。当前定义了下列选项:

-async
    要求异步调用。在这种情况下 send 命令将立即完成而不等待 cmd 在目标应用中完成；不能获得任何结果并且忽略在发送命令中的错误。如果目标应用与发送的应用在同一个进程中则忽略 -async 选项。

-displayof pathName
    指定目标应用的主窗口是在用 pathName 给出的窗口的显示器上，而不是包含应用的主窗口的显示器。

--  除了终止选项的列表没有其他用途。这个选择只在 app 包含一个前导的“-”字符时需要。

应用的名字 APPLICATION NAMES

用程序或建立这个应用的脚本的名字来初始设置应用的名字。你可以用 tk appname 命令查询和变更一个应用的名字

停用发送 DISABLING SENDS

如果从应用中删除了 send 命令(比如，使用了命令 rename send {})，则这个应用不对到来的发送请求做任何响应，也不能发起外出的请求。可以通过调用 tk appname 命令重新启用通信。

安全 SECURITY

send 命令是一个潜在的严重的安全漏洞。在 Unix 上，可以连接到你的 X 服务器的任何应用都可以向你的应用发送脚本。这些到来的脚本可以使用 Tcl 来读写你的文件和用你的名字调用子进程。 基于主机的访问控制比如 xhost 特别不安全，因为它允许在特定主机上有一个帐户的任何人连接到你的服务器上，并且如果停用了它则允许任何人从任何地方连接到你的服务器。为了提供少量的安全性，Tk 检查服务器使用的访问控制，并且除非是 (a)启用了 xhost式样的访问控制(就是说只有特定主机可以建立连接)，和 (b)允许的主机的列表是空的，否则丢弃到来的发送。这意味着除非应用使用了其他形式的授权(authorization)比如 xauth，否则不能连接到服务器上。 在 Windows 上，目前禁用 send。它的多数功能由 dde 命令提供。

关键字 KEYWORDS
application, dde, name, remote execution, security, send

[中文版维护人]
寒蝉退士

[中文版最新更新]
2002/05/28

《中国 Linux 论坛 man 手册页翻译计划》:
http://cmpp.linuxforum.net