strchg(1) strchg(1)
NAME
strchg, strconf - change or query stream configuration
SYNOPSIS
strchg -h module1[,module2 . . .]
strchg -p [-a | -u module]
strchg -f file
strconf [-t | -m module]
DESCRIPTION
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 a privileged user or owner of a STREAMS device
may alter the configuration of that stream.
With the -h option, strchg 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 second, and so on.
The -p option pops modules off the stream. With the -p option
alone, strchg pops the topmost module from the stream. With
the -p and -a options, all the modules above the topmost
driver are popped. When the -p option is followed by -u
module, then all modules above but not including module are
popped off the stream. The -a and -u options are mutually
exclusive.
With the -f option, the user can specify a file 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. The strchg command will determine the current
configuration of the stream and pop and push the necessary
modules in order to end up with the desired configuration.
The -h, -f and -p options are mutually exclusive.
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. With the
Copyright 1994 Novell, Inc. Page 1
strchg(1) strchg(1)
-t option, only the topmost module (if one exists) is printed.
The -m option determines 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 exclusive.
EXAMPLES
The following command pushes the module ldterm on the stream
associated with the user's standard input:
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 a privileged user.
strchg -p < /dev/term/24
If the file fileconf contains the following:
compat
ldterm
ptem
then the command
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
compat 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 ports driver, it would produce
the following output:
ldterm
ports
The following command asks if ldterm is on the stream
strconf -m ldterm
and produces the following output while returning an exit
status of 0:
yes
REFERENCES
streamio(7)
Copyright 1994 Novell, Inc. Page 2
strchg(1) strchg(1)
DIAGNOSTICS
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
file 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 conditions,
including usage error or failure of an ioctl on the stream.
NOTICES
If the user is neither the owner of the stream nor a
privileged user, the strchg command will fail. If the user
does not have read permissions on the stream and is not a
privileged 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
terminals, if the line discipline module is not pushed in the
correct place, one could have a terminal that does not respond
to any commands.
Copyright 1994 Novell, Inc. Page 3