Tidak, /dev/stdin
dan /dev/stdout
perangkat yang salah. Ini bukan perangkat terminal, mereka alias untuk input standar dan output standar masing-masing. Input standar dan output standar, menurut definisi, deskriptor file yang diharapkan aplikasi akan terbuka dan memiliki makna konvensional (masing-masing deskriptor file 0 dan 1, ada juga 2 yang merupakan kesalahan standar). Perangkat seperti /dev/stdin
dan /dev/stdout
berguna ketika aplikasi membutuhkan nama file, tetapi pengguna aplikasi menginginkannya untuk mengakses deskriptor file tertentu daripada membuka beberapa file. Bergantung pada varian unix, mereka bahkan mungkin bukan file perangkat; misalnya, di Linux, mereka adalah tautan simbolis/proc/self/fd/0
dan teman-teman, dan ini pada gilirannya merupakan "simbolis" tautan simbolis ke file apa pun yang prosesnya sudah terbuka pada file deskriptor itu.
Mengubah izin /dev/stdin
dan /dev/stdout
hanya akan mengubah apa yang terjadi ketika nama file ini digunakan secara eksplisit. Itu tidak mempengaruhi apa pun yang terkait dengan terminal, dan itu tidak mempengaruhi penggunaan normal input standar dan output standar, karena izin hanya penting ketika membuka nama file tertentu.
Apa yang mesg
dilakukan adalah mengubah izin terminal pengendali proses . Untuk aplikasi yang berjalan di terminal, terminal terbuka pada input standar, standar ouput dan kesalahan standar (deskriptor file 0, 1 dan 2). Anda dapat menggunakan perintah tty
untuk melihat apa perangkat terminal itu. mesg n
sama dengan chmod g-w "$(tty)"
dan mesg y
setara dengan chmod g+w "$(tty)"
.
mesg n
dapat menggunakan izin untuk mempengaruhi masa depanwrite
s hanya karenawrite
tidak sudah terbuka terminal.