Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk membuat output (stdout, stderr) dari mana-mana arahan shell tidak dibuffer?

Bagaimana untuk membuat output (stdout, stderr) dari mana-mana arahan shell tidak dibuffer?

王林
Lepaskan: 2024-02-06 09:12:10
ke hadapan
1264 orang telah melayarinya

如何使任何 shell 命令的输出(stdout、stderr)不缓冲?

Kandungan soalan

Adakah terdapat cara untuk menjalankan arahan shell tanpa penimbalan output?

Sebagai contoh, hexdump 文件 | ./my_script hanya akan menghantar input daripada hexdump ke my_script dalam ketulan penimbal, bukan baris demi baris.

Apakah penyelesaian umum untuk membuat keluaran mana-mana arahan tidak ditimbal?


Jawapan betul


Setahu saya, anda tidak boleh melakukan ini tanpa hack yang jelek. Menulis pada paip (atau membaca daripada paip) secara automatik menghidupkan penimbalan penuh, tiada apa yang boleh anda lakukan mengenainya :-(. "Penimbalan talian" (yang anda mahukan) hanya digunakan apabila membaca/menulis ke terminal. Penggodaman hodoh Itulah yang mereka lakukan: mereka menyambungkan atur cara ke terminal pseudo supaya alat lain dalam saluran paip membaca/menulis dari terminal itu dalam mod buffer baris Keseluruhan masalah diterangkan seperti berikut:

Halaman ini juga menyediakan beberapa cadangan ("godam hodoh" yang disebutkan di atas) untuk melakukan beberapa helah menggunakan unbuffer 或使用 LD_PRELOAD.

Atas ialah kandungan terperinci Bagaimana untuk membuat output (stdout, stderr) dari mana-mana arahan shell tidak dibuffer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan