strchg(1) User Commands strchg(1)
strchg, strconf - change or query stream configuration
strchg -h module1 [, module2...]
strchg -p [-a | -u module]
strchg -f filename
strconf [-m | -t module]
These commands are used to alter or query the configuration of the stream associated with
the user's standard input. The strchg command pushes modules on and/or pops modules off
the stream. The strconf command queries the configuration of the stream. Only the super-
user or owner of a STREAMS device can alter the configuration of that stream.
Invoked without any arguments, strconf prints a list of all the modules in the stream as
well as the topmost driver. The list is printed with one name per line where the first
name printed is the topmost module on the stream (if one exists) and the last item printed
is the name of the driver.
The following options apply to strchg and, -h, -f, and -p are mutually exclusive.
Pop all the modules above the topmost driver off the stream. This option requires the
Specify a filename that contains a list of modules representing the desired configura-
tion of the stream. Each module name must appear on a separate line where the first
name represents the topmost module and the last name represents the module that should
be closest to the driver. strchg determines the current configuration of the stream
and pop and push the necessary modules in order to end up with the desired configura-
-h module1 [,module2...]
Mnemonic for push, pushes modules onto a stream. It takes as arguments the names of
one or more pushable streams modules. These modules are pushed in order; that is, mod-
ule1 is pushed first, module2 is pushed second, etc.
Mnemonic for pop, pops modules off the stream. With the -p option alone, strchg pops
the topmost module from the stream.
All modules above, but not including module are popped off the stream. This option
requires the -p option.
The following options apply to strconf and, -m and -t are mutually exclusive.
-m module Determine if the named module is present on a stream. If it is, strconf
prints the message yes and returns zero. If not, strconf prints the message
no and returns a non-zero value. The -t and -m options are mutually exclu-
-t module Print only the topmost module (if one exists). The -t and -m options are
Example 1 Using the strchg Command
The following command pushes the module ldterm on the stream associated with the user's
example% strchg -h ldterm
The following command pops the topmost module from the stream associated with
/dev/term/24. The user must be the owner of this device or the super user.
example% strchg -p < /dev/term/24
If the file fileconf contains the following:
then the command
example% strchg -f fileconf
configures the user's standard input stream so that the module ptem is pushed over the
driver, followed by ldterm and ttcompat closest to the stream head.
The strconf command with no arguments lists the modules and topmost driver on the stream;
for a stream that has only the module ldterm pushed above the zs driver, it would produce
the following output:
The following command asks if ldterm is on the stream:
example% strconf -m ldterm
and produces the following output while returning an exit status of 0:
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE ATTRIBUTE VALUE |
|Availability SUNWcsu |
strchg returns zero on success. It prints an error message and returns non-zero status for
various error conditions, including usage error, bad module name, too many modules to
push, failure of an ioctl on the stream, or failure to open filename from the -f option.
strconf returns zero on success (for the -m or -t option, "success" means the named or
topmost module is present). It returns a non-zero status if invoked with the -m or -t
option and the module is not present. It prints an error message and returns non-zero sta-
tus for various error conditions, including usage error or failure of an ioctl on the
If the user is neither the owner of the stream nor the super-user, the strchg command
fails. If the user does not have read permissions on the stream and is not the super user,
the strconf command fails.
If modules are pushed in the wrong order, one could end up with a stream that does not
function as expected. For ttys, if the line discipline module is not pushed in the correct
place, one could have a terminal that does not respond to any commands.
SunOS 5.11 24 Mar 2005 strchg(1)