Üye Kayıt Üye Giriş
biz-sizi-arayalim
biz-sizi-arayalim
Grafik Tasarım Eğitim Seti
Masaüstü bilgisayarı cebe sığdırdılar
Masaüstü bilgisayarı cebe sığdırdılar
Avast ve Windows Güncellemeleri Çakışınca!
Avast ve Windows Güncellemeleri Çakışınca!
Toshiba'nın İddialı Bilgisayar Tableti!
Toshiba'nın İddialı Bilgisayar Tableti!
Yeni Microsoft'un Windows tanıtılıyor
Yeni Microsoft'un Windows tanıtılıyor
Skype 7, Mac ve Windows İçin Yayınlandı!
Skype 7, Mac ve Windows İçin Yayınlandı!
kpss-egitim-setleri

Standart C Fonksiyonlarının Tamponlaması ve Bunun fork İşlemine Yansıması


Arapça Görüntülü Eğitim Seti

Standart C Fonksiyonlarının Tamponlaması ve Bunun fork İşlemine Yansıması

Bilindiği gibi standart C fonksiyonları kütüphane içerisinde ayrı bir tamponlama uygularlar.
Standart dosya fonksiyonları kullanıldığında bu durum göz önünde bulundurulmalıdır, çünkü
örneğin fork işleminden önce standart C fonksiyonlarıyla dosyaya bir şeyler yazılmış olabilir,
ancak henüz tampon dolmadığı için bunlar dosyaya write fonksiyonuyla aktarılmamış olabilir.
Bu noktada fork yapıldığında tüm bellek alanının kopyası oluşturulduğu için bu tampon
bölgelerin de kopyası alt process için oluşturulmuş olacaktır. Böylece üst ve alt process'lerde
fork işleminden önce tamponda bulunanlar ilk tazeleme işlemi ile iki kez hedef aygıta
aktarılacaktır. Bu tür durumlarda iyi bir kontrol uygulanmazsa pek çok potansiyel problem
çıkabilir. Bu nedenle fork işleminden önce standart dosya fonksiyonları kullanılacaksa şu
önlemler alınmalıdır:


1) fork işleminden önce dosya tamamen kapatılabilir.
2) fork işleminden önce dosya fflush fonksiyonuyla flush edilebilir.
3) En başta tamponlamasız moda geçilerek işlemler yapılabilir.

Default olarak stdout standart C fonksiyonları için ya tamponlamasız çalışır ya da satır
tamponlaması yapmaktadır (standartlara göre başlangıçta default olarak stdout tam
tamponlama kullanamaz). Standart C kütüphanelerinin çoğu stdout dosyasını default olarak
tamponlamasız modda kullanmaktadır. Bazı kütüphaneler (GNU libc) satır tamponlamalı
olarak kullanır, ama stdin gerektiren dosya işlemlerinde stdout dosyasını da flush eder. Bu
durumda aşağıdaki kod problemli olacaktır:


int main(void)
{
printf("bir");
fork();
printf("iki\n");
return 0;
}
Burada default stdout için satır tamponlaması yapan standart C kütüphanelerinde ekrana
biriki
biriki
yazısı çıkar.

İngilizce DVD Eğitim Seti
Bilgisayar Dershanesi Ders Sahibi;
Bilgisayar Dershanesi

Yorumlar

Yorum Yapabilmek İçin Üye Girişi Yapmanız Gerekmektedir.

ETİKETLER

SEO En İyi SEO Firması Opencart Opencart E Ticaret İngilizce Öğren Fransızca Öğren Rusça Öğren Arapça Öğren Almanca Öğren Çince Öğren Japonca Öğren İspanyolca Öğren Hollandaca Öğren Kürtçe Öğren