名前 | 形式 | 機能説明 | オペランド | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断
write ユーティリティは、ユーザーの標準入力から行を読み込み、 他のユーザーの端末へ書き出します。 最初の呼び出しのときに、次のメッセージを user で指定されたユーザーの端末へ書き出します。
Message from sender-login-id (sending-terminal) [date]... |
接続が正常に行われると、送り側ユーザーの端末にベルを 2 回送って、入力中の内容が宛先端末に送信されつつあることを示します。
受け取り側は、返答を送りたい場合、最初のメッセージの 受信時に以下のように入力します。
write sender-login-id [sending-terminal] |
標準入力モードでは、NL、EOF、または EOL 特殊文字で区切られた 1 行分の入力データが累積されるたびに、その 1 行分が宛先ユーザーに送信されます。文字は次のように処理されます。
警告 (アラート) 文字を入力すると、警告文字が宛先に送られます。
行消去文字または文字消去文字を入力すると、termios(3C) インタフェースの規定に従って、送り側の端末が影響を受けます。
割り込みまたは EOF 文字を入力すると、 write は対応するメッセージ (C ロケールでは EOT\n) を宛先端末に送って処理を終了します。
LC_CTYPE における print または space に属する文字を入力すると、それらの文字が宛先端末に送られます。
stty iexten ローカルモードが有効な場合に限り、 特殊制御文字および複数バイト文字やシングルバイト文字は、 対応するワイド文字が印刷可能であれば、 印刷可能として処理されます。
その他の印刷不可能な文字を入力した場合は、 以下に述べるような方法で宛先端末に送られます。 制御文字は `‸' 文字のあとに適切な ASCII 文字が表示されます。 最上位ビットに 1 がたっている文字は「メタ」表記法で表示されます。 たとえば、 `\003' は `‸C' と表示され、 `\372' は `M–z' と表示されます。
複数ログインしているユーザーへメッセージを送りたいときには、 接続する端末を指定するために terminal 引数を使用できます。 それ以外の場合には、 /usr/adm/utmpx 中で見つかった、対象ユーザーの最初の出力可能な端末が宛先端末となります。 このとき、どの端末が選ばれたかを示すために以下の通知メッセージが 送り側の標準出力に書き出されます。
user is logged on more than one place. You are connected to terminal. Other locations are:terminal |
write メッセージの受け取り側になると、mesg ユーティリティを使って拒否したり承諾したりすることが可能となります。ただしユーザーがどのような特権を持っているかにより、 他のどのユーザーの端末にアクセスできるかが制限されます。つまり要求した動作を行う上で必要な特権を持っていないと、write ユーティリティの実行は成功しません。
! 文字が行の先頭にあると、write は、シェルを呼び出して行の残りの部分をコマンドとして実行します。
write は、他のユーザー端末への書き込み権を得るために、グループ ID tty への setgid() (setuid(2) を参照) を実行します。
write を使用するために次の手順をお薦めします。ユーザーが相手のユーザーに最初の write を実行したら、メッセージを送り始める前に write を返してくるのを待ちます。 相手がいつ返事をすればよいかがわかるように、 それぞれのユーザーは終了を示すシグナル ((o) は ``over (応答どうぞ)'' を表す。) を入れてメッセージを終了します。会話を終了するときは、シグナル (oo) (``over and out (通信終わり)'' を表す) をお薦めします。
以下のオペランドを指定できます。
メッセージの送信先となる人のユーザー (ログイン) 名。指定形式は、 who(1) ユーティリティが返す形式と同じでなければなりません。
端末の ID で、 who ユーティリティが返す形式と同一形式。
write の実行に影響を与える環境変数 LC_CTYPE、LC_MESSAGES、NLSPATH についての詳細は、 environ(5) を参照してください。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
CSI | 対応済み |
mail(1), mesg(1), pr(1), sh(1), talk(1), who(1), setuid(2), termios(3C), attributes(5), environ(5)
ユーザーが write を試みている相手はログインしていません。
ユーザーが write を試みている相手は、書き込みを mesg を使って拒否しています。
ユーザーの端末は mesg n に設定され、相手ユーザーが応答できません。
ユーザーが書き込みを始めた後で、相手ユーザーが、書き込みを拒否 (mesg n) しました。
名前 | 形式 | 機能説明 | オペランド | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 診断