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

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