GNU/Linux >> Belajar Linux >  >> Linux

Mengapa pipa shell ini keluar?

Pemipaan bekerja dengan menghubungkan keluaran dari satu proses A ke masukan dari B. Sambungan dapat diputus, kapan

  • A menutup keluarannya. B akan mendapatkan EOF.
  • B menutup masukannya. A akan mendapatkan kesalahan bahwa keluaran tidak lagi tersedia saat mencoba menulis byte berikutnya.

Karena kedua kasus ini sangat umum, penanganannya telah dipindahkan ke lib standar C.


head menutup file input setelah membaca jumlah yang diperlukan. ketika pipa ditutup dari satu sisi, sisi lain mendapat kesalahan tulis; ini menyebabkan base64 untuk menutup, yang pada gilirannya menyebabkan cat untuk menutup.


Setelah base64 menghasilkan 10 byte, head mendapat masukan dan keluaran yang cukup. Ketika yang pertama mencoba untuk mengeluarkan lebih banyak byte, itu akan menerima sinyal SIGPIPE dan karenanya keluar juga。Untuk alasan yang sama, cat akan keluar secara bergantian.


Linux
  1. Apa Arti Keluaran Dari Xev Ini?

  2. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  3. Mengapa slabtop -o hanya mengembalikan 23 baris pertama saat perintah disalurkan?

  1. Shell Script while loop:[ di sekitar saluran pipa yang hilang `]'

  2. Mengapa manual rm mengatakan bahwa kita dapat menjalankannya tanpa argumen, padahal ini tidak benar?

  3. Penerusan IP =kapan dan mengapa ini diperlukan?

  1. Mengapa Pergantian Perintah Shell Melahap A Trailing Newline Char?

  2. Mengapa Bashrc Memeriksa Apakah Shell Saat Ini Interaktif?

  3. Mengapa Opsi Ssh -t Menambahkan Cr &Lf Dalam Output yang Dialihkan?