cat
komutunun çıktısının tamamen arabelleğe alındığı bir satıra rastladım. Bu ne demek?Tam olarak tamponlanmış, çizgi arabelleğe alınmış ve arabelleğe alınmamış C cinsinden ortalama nedir?
cevap
bir dere tamponsuz olduğu, karakterler kısa sürede kaynağından veya varış yerinde görünmesi için tasarlanmıştır. Aksi halde karakterler biriktirilebilmekte ve konak ortamına bir blok olarak aktarılabilmektedir. Bir akış tam olarak arabelleğe alındığında, bir arabellek dolduğunda karakterlerin ana makine ortamına bir veya bir blok olarak iletilmesi amaçlanır. Bir akış satır arabelleği olduğunda, karakterlerin yeni satır karakteriyle karşılaşıldığında ana bilgisayar ortamına veya bir blok olarak iletilmesi amaçlanır. Ayrıca, bir tampon doldurulduğunda, arabelleğe alınmamış bir akışta giriş istendiğinde veya ana bilgisayar ortamından karakterlerin iletilmesini gerektiren bir satır tamponlu akışta giriş istendiğinde, karakterlerin ana bilgisayar ortamına bir blok olarak iletilmesi amaçlanır. . Bu özellikler için destek, uygulama tanımlıdır ve
setbuf
vesetvbuf
işlevleri aracılığıyla etkilenebilir.
7.21.3/7: Program Başlangıçta
, üç metin akışları önceden tanımlanmış olan ve açıkça açılacak gerekmez - (konvansiyonel girişi okumak için) standart girdi, standart çıktı (Geleneksel çıktı yazmak için) ve standart hatası (tanısal çıktı yazmak için). Başlangıçta açıldığı gibi, standart hata akışı tam olarak tamponlanmamıştır; standart giriş ve standart çıkış akımları, sadece ve eğer akış bir interaktif cihaza atıfta bulunulmayacağı belirlenirse tamamen tamponlanır.
Çözülmemiş çıkış, giriş dosyasındaki baytları, her biri okunduğunda, gecikme olmadan standart çıkışına yazar. o tampon içinde ve depolar okumak ve bunu önlemek için -u seçeneği ile tek onun yapılır bulunuyor tampon ..
gösterilecek olarak
Tam tamponlu çıktı ilk dizideki tam dosyasını okur.
[Örneklerde Perl'i özlü ve yeniden üretme kolaylığı için kullanıyorum, fakat benim çizdiğim kavramlar Perl'e özgü değil. C aynı şekilde çalışır.]
Arabellekleme, bir dosya tanıtıcısına yazılan nesnelerin OS'ye ne sıklıkla boşaltıldığını (gönderilmesini) belirler. Aşağıdaki iki komutların davranışını karşılaştırın:
# Without buffering
perl -e'$|=0; print "a"; sleep(2); print "b\n";'
# With buffering
perl -e'$|=1; print "a"; sleep(2); print "b\n";'
Normalde, tampon dolduğunda sadece aktarılmadan. Satır arabellekli çıktı da yeni satırla karşılaşıldığında temizlenir. Karşılaştırma: Çoğu program blok-arabelleğe almayı kullanır. Ancak, genellikle bir terminale bağlandığında stdout için satır ara belleğe geçerler. Karşılaştırma: 7.21.3/3
# Perl's STDOUT is line-buffered when connected to a terminal.
perl -e'print "a\n"; sleep(2); print "b\n";'
# Perl's STDOUT is fully buffered when connected to a pipe.
perl -e'print "a\n"; sleep(2); print "b\n";' | cat
# unbuffer uses pseudo-ttys to fool a program into thinking it's connected to a terminal.
unbuffer perl -e'print "a\n"; sleep(2); print "b\n";' | cat
- 1. JFileChooser resmi arabelleğe alınmış görüntüye
- 2. Satır arabelleğe alınmış verileri blok arabelleğe alınmış verilere karşı dosyadan programa nasıl yönlendirilir?
- 3. Döndürülmüş arabelleğe alınmış görüntü başka bir arabelleğe alınmış resimde nasıl kaydedilir?
- 4. Arabelleğe alınmış bir ObjectInputStream var mı?
- 5. JSON Nesnesini Arabelleğe ve Arabelleğe Dönüştürme JSON nesnesine geri dön
- 6. Çift Arabelleğe Alma? Win32 C++
- 7. Düğüm arabelleğe dönüştür Düğüm
- 8. C# Değişkenler çöp oluşturmadan arabelleğe kopyalansın mı?
- 9. android.media.MediaPlayer ile arabelleğe alma sorunları
- 10. AudioRecord - veri arabelleğe nasıl alınır?
- 11. Android AudioTrack arabelleğe yükleme sorunları
- 12. SDL üç kez arabelleğe alma
- 13. , pencereyi değiştirmeden C-x C-b ile arabelleğe geçme
- 14. Javascript Nesnesini Düğüm Arabelleğe dönüştürme nasıl?
- 15. Ostream nesnesini geçici bir arabelleğe nasıl yönlendirilir?
- 16. C'deki stdout'un arabelleğe alınması nasıl kapatılır
- 17. uWSGI: "Posta arabelleğe alınmadan harakiri'yi etkinleştirdiniz" düzeltmesi nedir?
- 18. Python dosya kitaplığı arabelleğe alınmadan nasıl sakınılır
- 19. Vim arabelleğe alınırken pencere konumunu koru
- 20. FileInputStream'i arabelleğe alma hakkında ne düşünüyorsunuz?
- 21. Belirli bir arabelleğe nasıl bir komut gönderirim?
- 22. 'Del' tuşuna basarken yank arabelleğe koymayın.
- 23. C++ cinsinden tip silme nedir?
- 24. Bir seri arabelleğe serileştirme vektörü <int32_t> hakkında mı?
- 25. Birden çok emacs arabelleğe özel bir komut yürütme
- 26. Tam olarak PLINQ nedir?
- 27. C, c_'nin alt çizgi ifadesini tam olarak ne yapar?
- 28. Tam olarak DEFAULT_COMPRESSION nedir?
- 29. JSON tam olarak nedir?
- 30. eclipse search - regex arabelleğe dönüşlü dosyanın başlamasını/sonunu bulma
Favori arama motorunuza gidin ve orada arayın. Binlerce iyi cevap alacaksın. –
^^ emin, ancak diğer öğrenciler zaten ilk sayfanın tüm iyi cevapları intihal etmiş olacak. Bu gibi mesajlar, OP'nin teslim edilmesi için eşsiz bir cevap istemeye yöneliktir. –
@MartinJames - cynic çok mu? ;) – KevinDTimm