Command Line Arguements

Kategori: C , 26 Haziran 2019 , JanFranco


Standart main fonksiyonu parametre almaz ve 0 return eder. Ancak bunları değiştirebiliriz. Değiştirmeden önce neden değiştirmeliyiz diye sorabilirsiniz. C'de yazdığımız programları, konsol ekranından çalıştırabiliriz ve konsol ekranında bir program çalıştırırken argüman yollayabiliriz. Bir C programı yazdığımızı, bu programı konsol ekranında compile ettiğimizi ve konsoldan çalıştırırken argüman yolladığımızı düşünelim. Bu argümanları programımızda şu şekilde alabiliriz:

int main(int argc, char **argv)

Burada argc argüman sayısını temsil eder. 4 argüman yolladığımızı düşünelim. argc değişkeninin değeri 5 olur. Bunu açıklayacağız. argv ise char tipinde bir double pointerdır. Aslında burada argv, pointerları tutan bir pointer dizisidir. Bildiğimiz gibi stringleri pointer şeklinde tanımlayabilirdik. char *name dediğimizde bir string tanımlamış oluruz ve name pointerı stringin ilk karakterini gösterir. Yani argv[0] bir string tutar, argv[1] bir string tutar şeklinde düşünebiliriz. Bunun örneğine geçmeden önce exit ve return olaylarını başka bir örnek üzerinden gösterelim:

int main(){

    int a;
    scanf("%d", &a);

    if(a == 2){
        exit(3);
    }
    return 8;

}

Burada kullanıcıdan bir sayı aldık. Eğer bu sayının değeri 2 ise program 3 sayısını return edecektir. Eğer sayının değeri 2 değilse 8 sayısını return edecektir. Bu return edilen değerleri konsolda alabiliriz. Şimdi argümanları kullanarak bir örnek yapalım:


int main(int argc, char **argv){
    
    int i;
    
    printf("Number of arguments: %d\n", argc);
    printf("Program name: %s\n", argv[0]);
    
    for(i=1; i<argc; i++){
        printf("Argument %d: %s\n", i, argv[i]);
    }
    
    return 0;
}

İlk olarak argüman sayısını ekrana bastırdık. Konsoldan 4 argüman girildiğinde argüman sayısı 5 olur. Bunun sebebi programımızın ismi de bir argüman olarak kabul edilir ve argv[0]'a atanır. Diğer argümanlar sırayla argv[1], argv[2] şeklinde saklanır. Daha sonra programımızın ismini ve diğer argümanları ekrana bastırdık. Yukarıdaki programı konsolda çalıştıralım ve sonuçları görelim:

$ test alpha bravo
Number of arguments: 3
Program name: test
Argument 1: alpha
Argument 2: bravo
$ test2
Number of arguments: 1
Program name: test2
$ test3 1 2 3 4 5 6
Number of arguments: 7
Program name: test3
Argument 1: 1
Argument 2: 2
Argument 3: 3
Argument 4: 4
Argument 5: 5
Argument 6: 6


Sonraki Yazı: Multidimensional Arrays
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın