Akımlar ve Çatallaşma
Önceki POSIX Evreleri Sonraki
Akımlar ve Çatallaşma
GNU standart G/Ç kütüphanesi, bütün standart C FILE nesnelerinin içteki bağlı listesini koruyan bir iç mutekse sahiptir. fork sırasında bu mutekse dikkat edilerek, alt süreç listenin sağlam bir kopyasını alabilir. Bu fopen işlevi ve ilgili akım oluşturma işlevlerinin alt süreçte doğru çalışmasına imkan verir, çünkü bu işlevler listeye ekleme ihtiyacı duyarlar.
Tek tek akım kilitleri tam olarak dikkate alınmazlar. Bu yüzden çok evreli uygulamalarda fork kullanımında özel önlemler alınmadığı sürece, alt süreç üst süreçten miras aldığı akımları güvenle kullanma imkanı bulamayabilirler. Genellikle, üst süreçte verilen ve alt süreçte kullanılacak herhangi bir akım için, uygulamada fork çağrıldığında akımın başka bir evre tarafından kullanılmamasının temin edilmesi gerekir. Aksi takdirde akım nesnesinin tutarsız bir kopyası üretilmiş olur. Bunu garantilemenin kolay yolu fork çağırmadan önce flockfile'ı akımı kilitlemek için kullanmak ve üst süreçte funlockfile ile kilidini açmaktır. Alt süreçte başka özel birşey yapılmasına gerek yoktur, çünkü kütüphane içte bütün akım kilitlerini sıfırlamaktadır.
Unutmayınız ki akım kilitleri üst ve alt süreçler arasında paylaşılmazlar. Örneğin, stdout akımının uygun bir şekilde ele alındığını ve alt süreçte güvenle kullanılabileceğini temin etseniz de akım kilitleri üst ve alt süreçler arasında bir dışlama yöntemi sağlamazlar. Eğer her iki süreç stdout'a yazıyorsa, flockfile veya örtük kilitler uygulanmazsa karmakarışık bir çıktı ortaya çıkabilir.
Ayrıca bu hazırlıklar bir GNU uzantısıdır; diğer sistemler bir çok-evreli sürecin alt sürecinde kullanılacak akımlar için bunları sağlayamayabilirler. POSIX sadece standart G/Ç dahil kütüphanenin büyük kısmını dışlayan zamanuyumsuz güvenli işlevleri kullanarak kendini sınırlayan böyle bir alt sürece ihtiyaç duyar.
Önceki Üst Ana Başlık Sonraki
Evreler ve Çatallaşmak Başlangıç Çeşitli Evre İşlevleri
Bir Linux Kitaplığı Sayfası