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 may
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.
-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, module1 is pushed first, module2 is pushed
-p Mnemonic for pop, pops modules off the stream. With
the -p option alone, strchg pops the topmost module
from the stream.
Pop all the modules above the topmost driver off the
stream. This option requires the -p option.
All modules above, but not including module are popped
off the stream. This option requires the -p option.
Specify a filename that contains a list of modules
representing the desired configuration 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 will determine the current con-
figuration of the stream and pop and push the neces-
sary modules in order to end up with the desired con-
The following options apply to strconf and, -m and -t are
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
Print only the topmost module (if one exists). The -t
and -m options are mutually exclusive.
Example 1: Using the strchg Command
The following command pushes the module ldterm on the stream
associated with the user's standard input:
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
will configure 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 attri-
| 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 status for various error condi-
tions, 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 will fail. If the user does
not have read permissions on the stream and is not the super
user, the strconf command will fail.
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
Man(1) output converted with