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

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh