跳过导航链接 | |
退出打印视图 | |
手册页第 1 部分:用户命令 Oracle Solaris 11 Information Library (简体中文) |
- 更改或查询流配置
strchg -h module1 [, module2...]
strchg -p [-a | -u module]
strchg -f filename
strconf [-m | -t module]
这些命令用于更改或查询用户的标准输入关联的流配置。strchg 命令推动模块到流上和/或将模块从流上弹出。strconf 命令查询流配置。只有超级用户或 STREAMS 设备的所有者才能更改该流的配置。
如果调用时不带任何参数,strconf 将输出包含流中所有模块以及最顶端的驱动程序的列表。该列表输出时,每行显示一个名称。其中,输出的第一个名称是流上的最顶端模块(如果存在),输出的最后一项是驱动程序的名称。
以下选项适用于 strchg 命令。其中,-h、-f 和 -p 选项是互斥的。
将最顶端的驱动程序上的所有模块从流上弹出来。该选项需和 -p 选项一起使用。
指定一个包含代表所需流配置的模块列表的 filename。每个模块名称必须在一个单独的行上显示。其中,第一个名称代表最顶端的模块,最后一个名称代表最靠近驱动程序的模块。strchg 确定当前流配置,并弹出和推动必要的模块以获取所需的配置。
推动助记符 h,将模块推动到流上。该助记符将一个或多个可推流模块的名称作为参数。这些模块按顺序推动,即首先推动 module1,其次推动 module2 等。
弹出助记符 p,将模块从流中弹出。如果只有 -p 选项,strchg 会将最顶端模块从流中弹出。
从流中弹出除 module 之外的上述所有模块。该选项需和 -p 选项一起使用。
以下选项适用于 strconf。其中,-m 和 -t 选项是互斥的。
确定指定的 module 是否在流上。如果该模块在流上,strconf 命令将输出 yes 消息并返回零值。如果该模块不在流上,strconf 将输出 no 消息并返回非零值。-a 和 -d 选项相互排斥。
只输出最顶端的模块(如果存在)。-t 和 -m 选项是互斥的。
示例 1 使用 strchg 命令
以下命令将模块 ldterm 推动到用户的标准输入关联的流上。
example% strchg -h ldterm
以下命令将最顶端的模块从 /dev/term/24 关联的流上弹出。用户必须是该设备的所有者或超级用户。
example% strchg -p < /dev/term/24
如果 fileconf 文件包含以下几项:
ttcompat ldterm ptem
则以下命令会
example% strchg -f fileconf
配置用户的标准输入流,以便将 ptem 模块推动到驱动程序上,ldterm 模块跟随在该模块的后面,而 ttcompat 模块被推到最靠近流头。
如果不指定任何参数,strconf 命令将列出该流中的模块以及最顶端的驱动程序。如果流中只有 ldterm 模块在 zs 驱动程序上推动,该命令将产生以下输出:
ldterm zs
以下命令询问 ldterm 模块是否在流上:
example% strconf -m ldterm
该命令返回退出状态 0 时产生以下输出:
yes
有关下列属性的描述,请参见 attributes(5):
|
如果执行成功,strchg 命令将返回零值。对于各种错误状态,该命令会输出错误消息并返回非零状态,包括使用错误、错误模块名称、要推动的模块太多、流上的 ioctl 操作故障,或未能打开 -f 选项指定的 filename。
如果执行成功,strconf 命令将返回零值。对于 -m 或 -t 选项,“执行成功”意味着指定的模块或最顶端的模块在流上。如果该命令在调用时指定了 -m 或者 -t 选项并且模块不在流上,则会返回非零状态。对于各种错误状态,该命令会输出错误消息并返回非零状态,包括使用错误或流上的 ioctl 操作故障。
如果用户既不是流的所有者也不是超级用户,strchg 命令将会失败。如果用户不是超级用户且没有流的读取权限,strconf 命令将会失败。
如果模块按错误的顺序推动,用户可能会获取不按预期的方式运行的流。对于 tty,如果线路规程模块被推动到不正确的位置,用户的终端可能不会对任何命令作出响应。