Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

write(1)

名前

write - 他のユーザーへのメッセージの書き込み

形式

write user [terminal]

説明

write ユーティリティーは、ユーザーの標準入力から行を読み込み、他のユーザーの端末へ書き出します。最初に呼び出されたときに、

Message from sender-login-id (sending-terminal) [date]...

というメッセージを user で指定されたユーザーの端末へ書き出します。接続が正常に行われると、送り側ユーザーの端末にベルを 2 回送って、入力中の内容が宛先端末に送信されつつあることを示します。

受け取り側は、返答を送りたい場合、最初のメッセージの受信時に

write sender-login-id [sending-terminal]

と入力します。標準入力モードでは、NLEOF、または 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 (通信終わり) を表す) をお薦めします。

オペランド

次のオペランドがサポートされています。

user

メッセージの送信先となる人のユーザー (ログイン) 名。指定形式は、 who(1) ユーティリティーが返す形式と同じでなければなりません。

terminal

端末の ID で、who ユーティリティーが返す形式と同一形式。

環境変数

write の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

指定されたユーザーはログインしていなかった、または指定されたユーザーが書き込みを拒否しました。

ファイル

/var/adm/utmpx

write 用のユーザーおよびアカウント情報

/usr/bin/sh

Bourne シェルの実行可能ファイル

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

mail(1), mesg(1), pr(1), sh(1), talk(1), who(1), setuid(2), termios(3C), attributes(5), environ(5), standards(5)

診断

user is not logged on

ユーザーが write を試みている相手はログインしていません。

Permission denied

ユーザーが write を試みている相手は、書き込みを mesg を使って拒否しています。

Warning: cannot respond, set mesg –y

ユーザーの端末は mesg n に設定され、相手ユーザーが応答できません。

Can no longer write to user

ユーザーが書き込みを始めた後で、相手ユーザーが、書き込みを拒否 (mesg n) しました。