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