Standart C Programlama Dili


7.5. Sistem İle İlgili Fonksiyonlar

İlginç bir fonksiyon olan system, bir C programı içinden, işletim sisteminizin kabul edebileceği herhangi bir komutu çalıştırmanızı sağlar.

system(kar_dizisi)

çağrısı yapıldığında, kar_dizisi içindeki işletim sistemi komutu çalıştırılır; bu komut tamamlandıktan sonra ise program normal bir şekilde devam eder. Örneğin,

system("DIR C:\\MSVC\\INCLUDE\\*.H")

ifadesi c:\msvc\include altdizini içinde dosya tipi h olan bütün dosyaların ekranda görüntülenmesini sağlar. Kullanılacak komutun, programın çalıştığı işletim sistemine uygun bir şekilde yazılmış olması gerekir. Yukarıdaki örnek unix-benzeri sistemlerde hata verecektir. unix-benzeri sistemlere uygun bir örnek aşağıdakidir:

system("ls -l /usr/include/*.h")

Şimdiye kadar görmüş olduğumuz programlar, çalışmaları sırasında herhangi bir sorun çıkmadığı takdirde, kontrol main bloğunun sonuna ulaştığında biterler. exit fonksiyonu ise, konulduğu yerde programın sona ermesini sağlar.

exit(durum)

çağrısı, açık olan tüm dosyalar için fclose’un, daha sonra da _Exit kütüphane fonksiyonunun çağrılmasını sağlar. _Exit başka bir şey yapmadan programı bitirir. (Programlarınızda kütüphanede tanımlanmış bulunan ve _ ile başlayan bir şey kullanmanız tavsiye edilmez; normal programcılar için bunlar biraz düşük düzeyde kalırlar ve Standarda dahil olmayabilirler.) Bir tamsayı olan durum’un değeri, bu programın çalışmasını sağlayan sürece geçirilir ve bu süreç tarafından bazı kararlar vermek için kullanılabilir. Geleneksel olarak, sıfırdan farklı durum değerleri çeşitli hatalı durumları gösterirler, 0 ise başarılı bir sonuçlanmayı gösterir. stdlib.h başlık dosyasında tanımlanmış EXIT_SUCCESS (başarılı sonuçlanma) ve EXIT_FAILURE (hatalı sonuçlanma) değerleri bu kodları standartlaştırmaktadırlar.

Birbirleriyle ilişkili iki fonksiyon da şunlardır:

rand()

ve

srand(tohum)

İlki 0 ile RAND_MAX (değeri derleyiciye bağlı olarak değişebilen, fakat en az 32767 olan bir değişmez makro) arasında bir sözde rastgele tamsayı verir. İkincisi ise, rand tarafından üretilecek yeni bir sözde rastgele sayı sırası için tohumu (işaretsiz bir tamsayı) belirtmek için kullanılır. Eğer srand çağrılmazsa, program başlarken tohum’un değeri 1’dir.