名前 | 形式 | 機能説明 | オプション | 使用例 | 属性 | 関連項目 | 診断 | 注意事項
これらのコマンドは、 ユーザーの標準入力に対応するストリームの構成を 変更または照会するために使用されます。 strchg コマンドは、 ストリーム上へモジュールをプッシュ、 もしくはストリームからモジュールをポップします。 strconf コマンドは、 ストリームの構成を問い合わせます。 ストリームの構成を変更できるのは、 スーパーユーザーおよび対応する STREAMS デバイスの所有者だけです。
strconf を引数なしで実行した場合、 ストリーム上の全モジュール名と 最上位のドライバ名のリストが返されます。 出力リストは 1 行に 1 つの名前の形式で、 もしストリーム上に最上位モジュールが存在していれば 先頭にその名前が置かれています。 最後の項目はドライバ名となります。
以下に示すオプションは、 いずれも strchg コマンド用のものです。 なお -h、 -f、 -p は相互に排他的なオプションです。
[ , module2. . . ] push のニモニック。 ストリームへモジュールをプッシュします。 1 つ以上のプッシュ可能なストリームモジュールの名前を 引数として指定します。 これらのモジュールは指定された順序でプッシュされます。 つまり最初に module1、次に module2 というようにプッシュされます。
pop のニモニック。 ストリームからモジュールをポップします。 -p だけを記述して strchg を実行すると、 最上位のモジュールがポップされます。
最上位ドライバよりも上位に位置する すべてのモジュールをストリーム上からポップする対象とします。 このオプションは、 必ず -p とともに指定してください。
module で示したモジュールよりも上位にある すべてのモジュールをストリーム上からポップする対象とします。 module 自体は対象とはなりません。 このオプションは、 必ず -p とともに指定してください。
ストリームの構成の変更内容を示す モジュールのリストを含んでいるファイルを filename で指定します。 このファイルは、 1 行に 1 モジュール名という形式でなければなりません。 最上位のモジュール名を 1 行目に、 ドライバに最も近いモジュール名を最終行に記述してください。 strchg は、 ストリームの構成が最終的にこのファイルで指定した内容になるよう、 モジュールのプッシュとポップを実行します。
以下に示すオプションは、 いずれも strconf コマンド用のもので、 -m と -t は相互に排他的です。
module で示したモジュールがストリーム上に存在しているかを調べます。 存在していれば、 strconf は yes というメッセージを出力してゼロを返します。 存在しなければ、 no というメッセージを出力してゼロ以外の値を返します。 この -m オプションは、 次の -t とは排他的です。
最上位モジュールが存在していればその名前を出力します。 この -t オプションは、 前述の -m とは排他的です。
次の例は、 ユーザーの標準入力に対応するストリーム上に ldterm という名のモジュールをプッシュするものです。
example% strchg -h ldterm |
次の例は、 /dev/term/24 に対応するストリームから 最上位モジュールをポップするものです。 このコマンドを発行するユーザーは、 当該デバイスの所有者もしくは スーパーユーザーでなければなりません。
example% strchg -p < /dev/term/24 |
ttcompat ldterm ptem以下のコマンドを実行すると、
example% strchg -f fileconf |
引数なしの strconf コマンドは、 ストリーム上の全モジュールと 最上位のドライバのリストを出力します。 たとえばストリームの現在の内容が、 ドライバ zs の上にモジュール ldterm がプッシュされているだけの状態の場合、 引数なしで strconf コマンドを実行すると次のような出力が得られます。
ldterm zs |
この内容のストリームに対して
example% strconf -m ldterm |
というコマンドを発行すると、 これは ldterm がストリーム上に存在しているかを問い合わせるものなので、 以下のメッセージを出力し、 終了コード 0 を返して実行が終了します。
yes |
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
strchg コマンドは、 実行に成功すれば ゼロを返します。 エラーが発生すると、 エラーメッセージを表示して ゼロ以外の値を返します。 起こりうるエラーとしては、 使用方法の誤り、 不当なモジュール名、 プッシュ対象のモジュールが多すぎる、 ストリーム上の ioctl の失敗、 -f オプションで指定した filename がオープンできない、 などが考えられます。
strconf コマンドも、 実行に成功すればゼロを返します( ここで言う成功とは、 -m オプション使用時には指定したモジュールが 存在していることを、 また -t オプション使用時には最上位モジュールが 存在していることを意味します)。 -m または -t オプションが指定され、 該当するモジュールが存在しない場合、 ゼロ以外の値を返します。 また、使用方法の誤りやストリーム上の ioctl の失敗などのエラーが発生すると、 エラーメッセージを表示してゼロ以外の値を返します。
スーパーユーザーでもなく、 ストリームの所有者でもないユーザーは、 strchg コマンドを実行することはできません。 また、スーパーユーザーでもなく、 ストリームに対する読み取り権を持ってもいないユーザーは、 strconf コマンドを実行することはできません。
誤った順序でモジュールをプッシュしてしまうと、 ストリームが期待どおりに機能しなくなる恐れがあります。 また、 tty のストリームで回線規約モジュールを 誤った位置にプッシュしてしまうと、 端末がどのコマンドに対しても応答しなくなる恐れがあります。