GNU/Linux >> Belajar Linux >  >> Linux

Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?

Terkadang saya perlu menentukan "path-equivalent" dari salah satu aliran IO standar (stdin , stdout , stderr ). Sejak 99% waktu saya bekerja dengan Linux, saya hanya menambahkan /dev/ untuk mendapatkan /dev/stdin , dll., dan ini “sepertinya untuk melakukan hal yang benar”. Tapi, untuk satu hal, saya selalu tidak nyaman dengan alasan seperti itu (karena, tentu saja, "tampaknya berhasil" sampai tidak). Selain itu, saya tidak tahu seberapa portabel manuver ini.

Jadi saya punya beberapa pertanyaan:

  1. Dalam konteks Linux, apakah aman (ya/tidak) untuk menyamakan stdin ,
    stdout , dan stderr dengan /dev/stdin , /dev/stdout , dan
    /dev/stderr ?

  2. Secara umum, apakah kesetaraan ini “cukup portabel “?

Saya tidak dapat menemukan referensi POSIX.

Jawaban yang Diterima:

Ini telah tersedia di Linux kembali ke masa prasejarahnya.
Ini tidak POSIX, meskipun banyak shell yang sebenarnya (termasuk AT&T ksh dan bash ) akan mensimulasikannya jika tidak ada di OS; perhatikan bahwa simulasi ini hanya bekerja pada tingkat shell (yaitu pengalihan atau parameter baris perintah, bukan sebagai argumen eksplisit misalnya open() ).
Artinya, itu harus tersedia di sebagian besar sistem Unix komersial, dengan satu atau lain cara (kadang-kadang dieja /dev/fd/N untuk berbagai bilangan bulat N , tetapi sebagian besar sistem dengan itu akan menyediakan symlink seperti yang dilakukan Linux dan *BSD).


Linux
  1. Cara membuat kata sandi acak di linux menggunakan /dev/random

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Kapan Menggunakan /dev/random Vs /dev/urandom?

  1. Cara memetakan perangkat /dev/sdX dan /dev/mapper/mpathY dari perangkat /dev/dm-Z

  2. Apa itu file /dev/zero dan /dev/null di Linux?

  3. Bagaimana Anda menukar/dev/sda dengan/dev/sdb?

  1. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  2. Bagaimana cara mengubah jumlah dan ukuran ramdisk Linux (/dev/ram0 - /dev/ram15)?

  3. Linux:Perbedaan antara /dev/console , /dev/tty dan /dev/tty0