resource(3tcl)

NAME
resource - 操縱 Macintosh 資源

總覽 SYNOPSIS
resource option ?arg arg ...?

描述 DESCRIPTION

resource 命令為處理 Macintosh 資源提供了一些一般操作。只在Macintosh 平台上支持這個命令。每個 Macintosh 檔案由兩個 fork組成: 一個數據 fork 和一個資源 fork。你可以使用通常的open、puts、 close 等命令來操縱數據 fork。但是要與資源 fork 交互你必須使用這個命令。Option 指示完成什麼資源命令。可以接受 option 的一個唯一的縮寫。有效的選項有:

resource close rsrcRef
    關閉給定的資源引用(獲取自 resource open)。來自這個資源檔案的資源將不再可獲得。

resource delete ?options? resourceType
    這個命令將刪除用 options 和類型 resourceType (參見下面的RESOURCE TYPES 資源類型) 指定的資源。下列選項給出指定要刪除資源的一些方式。

    -id resourceId
        如果給出了 -id 選項，則使用 id resourceId (參見下面的RESOURCE IDS 資源ID)指定要被刪除的資源。id 必須是一個數 - 要指定一個名字請使用 -name 選項。

    -name resourceName
        如果指定了 -name，則刪除叫做 resourceName 的資源。如果還提供了 -id，則要刪除的資源必須有這個名字和這個 id 二者。如果未提供名字，則使用 id 而不管實際資源的名字。

    -file resourceRef
        如果指定了 -file 選項，則從 resourceRef 所指向的檔案中刪除資源。否則刪除在資源檔案路徑上找到的有給定的 resourceName 和/或 resourceId 的第一個資源。要檢查檔案路徑，應使用 resource files 命令。

resource files ?resourceRef?
    如果未提供 resourceRef，這個命令返回所有當前打開的資源檔案的資源引用的一個 Tcl 列表。這個列表按 Macintosh 通常查找資源的次序來排序。如果指定了 resourceRef，這個命令將返回到那個記號表示的資源 fork 所在的檔案的路徑。

resource list resourceType ?resourceRef?
    列出所有的類型 resourceType 的 id(參見下面的 RESOURCE TYPES 資源類型)。如果指定了resourceRef ，則這個命令把查找限制為這個特定的資源檔案。否則，查找應用當前當前打開的所有資源檔案。返回找到的資源的要麼是資源名字要麼是資源id 的一個 Tcl 列表。關於資源 id 的詳情請參見下面的 RESOURCE IDS 資源 ID。

resource open fileName ?access?
    打開檔案 fileName 的中資源。還可以指定標準檔案訪問權限(詳情參見 open 手冊條目)。它返回可被其他資源命令使用的一個資源引用(resourceRef)。如果檔案不存在或檔案沒有資源 fork 則產生一個錯誤。但是，如果你打開檔案時加上了寫權限，則建立這個檔案和/或資源 fork 而不生成一個錯誤。

resource read resourceType resourceId ?resourceRef?
    把類型是 resourceType (參見下面的 RESOURCE TYPES資源類型)並且名字或 id 是 resourceId 的全部資源(參見下面的 RESOURCE IDS 資源 ID)讀到記憶體中並返回這個結果。如果指定了 resourceRef ，則這個命令把我們的查找限制為這個特定的資源檔案，否則我們查找在應用中所有打開的資源。要注意：多數 Macintosh 資源使用二進制格式，並且從這個命令返回的數據可能包含嵌入的 NULL 或其他非 ASCII 數據。

resource types ?resourceRef?
    這個命令返回在 resourceRef 所指向的資源檔案中找到的所有資源類型(參見下面的 RESOURCE TYPES資源類型)的一個Tcl 列表。如果未指定 resourceRef ，則它返回在應用當前打開的所有資源檔案中找到的所有資源類型。

resource write ?options? resourceType data
    這個命令把在 data 中傳遞進來的數據寫為類型是 resourceType (參見下面的 RESOURCE TYPES資源類型)的一個新資源。可獲得許多描述資源存儲在那裏和如何存儲的選項。

    -id resourceId
        如果給出了 -id 選項，則為新資源使用 id resourceId ( 參見下面的SOURCE TYPES資源類型)，否則生成一個與任何現存的資源不沖突的一個唯一的 id。但是，id 必須是一個數 - 要指定一個名字請使用 -name 選項。

    -name resourceName
        如果指定了 -name，則這個資源將叫做 resourceName，否則它將以空串作為名字。

    -file resourceRef
        如果指定了 -file 選項，則把資源被寫入 resourceRef 所指向的檔案中，否則使用最新近打開的資源。

    -force
        如果目標資源已經存在，則 Tcl 預設的不是覆寫它，而是引發一個錯誤。使用 -force 標誌來強行覆寫現存的資源。

資源類型 RESOURCE TYPES
資源類型被定義為一個四字符的字符串，它被映射成一個底層 id。例如，TEXT 參照的 Macintosh 資源類型是文本。類型 STR# 是已計數的(counted)的字符串的一個列表。所有 Macintosh 資源必須是某種類型的。要得到通常使用的資源類型的一個完整列表請參見 Macintosh 文件。

資源 RESOURCE IDS
對於本命令，一個資源的 id 的概念(notion)實際上涉及 Macintosh 資源中的兩個概念。在你可以使用資源 Id 的每個地方，你可以使用資源名字或者一個資源數。查找和返回總是偏好名字而不是數。例如，如果一個資源的名字存在則 resource list 命令將返回這個名字，如果資源的名字是 NULL 則返回數。

移植要點 PORTABILITY ISSUES
只在 Macintosh 上可獲得這個命令。

參見 SEE ALSO
open(n)

關鍵字 KEYWORDS
open, resource

[中文版維護人]
寒蟬退士

[中文版最新更新]
2001/10/29

《中國 Linux 論壇 man 手冊頁翻譯計劃》:
http://cmpp.linuxforum.net