Standart C Programlama Dili


B.5. unix Programları

unix C programlarında kullanılan fonksiyonlar iki kısma ayrılabilir: (1) unix temel sistem fonksiyonlarını doğrudan çağıran fonksiyonlar; bunlara sistem çağrısı denir. (2) Çeşitli kütüphanelerde bulunan işlevler; bunlara kütüphane yordamı denir. Şöyle ki:

Bir sistem çağrısı, işletim sistemine kullanıcı programı adına bir şey yaptırma isteğidir. Örneğin, read sistem çağrısı, işletim sisteminden bir diskte depolanan bir dosyadaki verileri, kullanıcı programı için ayrılmış bir bellek bölgesine okunması isteğidir. Bu, böyle bir işlemin işletim sisteminin gözetimi altında yapılması gereken tipik bir durumdur. Çok kullanıcılı, çok görevli bir sistemde, kullanıcı seviyesinde çalışan bir programın donanım aygıtlarına doğrudan erişmesine izin verilmez; çünkü aksi takdirde, hem sistem tutarlılığı, hem de güvenlik açısından olumsuz sonuçlar ortaya çıkar.

Öte yandan, bir kütüphane yordamı, doğrudan bir işletim sistemi çağrısına dönüştürülmeyen bazı görevleri gerçekleştirmek için bir kullanıcı programından çağrılabilen bir modüldür, yani bir C fonksiyonudur. Örneğin, sort kütüphane yordamı yapılardan oluşan bir diziyi sıralar. Uygun bir sıralama algoritması kullanan benzer bir yordam, herhangi bir programcı tarafından yazılabilir ve program içinden çağrılabilir. Bununla birlikte, aynı işlevsellik C kütüphanesi tarafından sağlandığı için, genellikle böyle bir şeye ihtiyaç yoktur. Bazı kütüphane fonksiyonlarının (örneğin, printf) önünde sonunda görevlerini tamamlamak için bir sistem çağrısı (örneğin, write) yapabileceğini unutmayın.

Başka bir açıdan baktığımızda, C programlarından çağrılan fonksiyonları iki kısma ayırabiliriz: (1) Standart C kütüphanesini oluşturan yordamlar; bunlar Bölüm 9’da açıklanmıştır. (2) Genellikle çoğu unix sisteminde bulunan, ancak diğer C ortamlarında bulunmayabilen bazı yordamlar. İkinci gruptaki yordamlara unix sistemlerine özgü sistem çağrıları da dahildir ve unix dışındaki işletim sistemlerinde benzer, fakat özellikleri ve kullanımları açısından çok farklı sistem çağrıları yapan fonksiyonlar bulunabilir. Bunlar alt düzey girdi/çıktı, dosya ve dizin yönetimi, cihaz girdi/çıktı kontrolü, kullanıcı ve yetkilendirme işlemleri, zaman fonksiyonları, süreç ve iş yönetimi, süreçlerarası iletişim, ağ iletişimi gibi işlemler için kullanılır.