Operating systems ödevimi yaparken ihtiyacım olan ve bu güne kadar hiç kullanmadığım bir olayla karşılaştım C programlama dili üzerinde.

Eğer programımıza komut satırında çalıştırırken parametre girmemiz gerekirse bu işi nasıl yaparız?

Cevabı internette biraz araştırma yaptıktan sonra şu ana kadar parametresini hep void ile doldurduğum main fonksiyonuna parametre girmekle yapılacağını öğrendim. Şimdi bu iş nasıl gerçekleşiyor bakalım.

Örnek programımızın adı program.c olsun. program.c içerisinde main fonksiyon prototipimizi şu şekilde yazalım:

int main(int argc, char * argv[])

argc ve argv sıklıkla kullanılan değişken isimleridir. Tabi ikisi de değişken olduğu için isimlerini dilediğiniz şekilde değiştirebilirsiniz. Ardından programımızı gcc ile derleyelim:

xaph@linux$ gcc program.c

Son olarak ise programımızı çalıştırırken girmek istediğimiz değişkenleri girelim:

xaph@linux$ ./a.out degisken1 degisken2 degisken2

Bu şekilde çalıştırılan programımızda argc konsoldan girilmiş olan toplam input sayısını tutar. Bizim örneğimiz için bu değer 4tür. Main fonksiyonuna girmek istediğiniz değişkenler ise argv string arrayinde tutulmaktadır. argv[0] programımızın adını tutar. argv[1] den argv[3] e kadar olan dizi ise sırasıyla girdiğimiz degisken1, degisken2, degisken3 değerlerini tutar. Bu değişkenleri programınız içerisinde dilediğiniz gibi kullanabilirsiniz.

Konsoldan integer girişi:
Şu ana kadar girdiğimiz ve kullanmak istediğimiz değişkenler string veri türündeydi. Peki biz programımıza tamsayı girdisi yapmak istersek ne yapmalıyız?

Main fonksiyonunda kullandığımız prototip önceden tanımlı bir durumdadır. Dolayısıyla ikinci parametre olan char* veri türünde değişiklik yapamıyoruz. Bu da gireceğimiz her sayının karakter dizesi olarak tutulması anlamına geliyor. String veri türündeki bir tamsayıyı nümerik veri türlerine çevirmek için standart C kütüphanesinde atoi, atol, atof, strtol gibi fonksiyonlar bulunmakta. En çok kullanılanı olduğu için kısaca atoinin kullanıldığı bir örnek koda bakalım.

#include <stdio.h>
int main(int argc, char* argv[])
{
    int i;
    i=atoi(argv[1]);
    printf("%d", i);
}

Bu şekildeki bir programı derleyip parametre olarak integer değeri girdikten sonra, girdiğiniz değeri çıktı olarak basacaktır. Tabi çıktı sayının integer veri tipine çevrilmiş haliyle basılır.

Artık tek yapmanız gereken konsoldan aldığınız parametreleri istediğiniz hale getirip kullanmak. İyi kodlamalar.

Linux’a yeni başlayan birisi için konsol yeni bir kavram demektir. Ancak vaktini bir süre Linux üzerinde geçirmiş ve programlarını kendisi derleyen birisi için ise konsol vazgeçilmez bir araçtır.
Konsol, bir diğer adıyla terminal(uçbirim) Linux üzerinde çeşitli komutları çalıştırmanıza ve bu komutların size verdiği çıktıları almanıza yarayan bir arabirimdir. Bilenler için Windows üzerindeki “ms-dos” kavramına benzer bir kavramdır.
Konsol üzerinde kullanabileceğiniz çok sayıda komut vardır. Bunların hangi komutlar olduğunu ve Türkçe açıklamalarını görmek isterseniz buradaki sayfayı ziyaret edebilirsiniz.
Konsol hakkında kısaca bir bilgi verdikten sonra konsolun nasıl açılacağına bir göz atalım. Konsolu açmak için öncelikle uygulamalar menünüz üzerinde bir göz gezdirmenizde yarar var. Mesela Ubuntu üzerinde konsol açmak için Uygulamalar>>Donatılar>>Uçbirim yolunu izlemeniz gerekirken Kubuntu üzerinde konsol açmak için ise menüden Sistem>>Konsol yolunu izlemelisiniz. Konsol aslına başlı başına bir program olduğundan çeşitli sistemlerde farklı isimler kurulu olarak geliyor olabilir. Sizin yapmanız gereken menü üzerinde “Terminal”, “Uçbirim”, “Konsol” adlarını aramak olmalıdır.
Konsolumuzu açtıktan sonra karşımıza şuna benzer bir ekran gelecektir:

kullaniciadi@bilgisayaradi:~$

Burada sizin hangi kullanıcı adıyla hangi bilgisayarı kullandığınızı gösteren bir bilgi vardıri. Ayrıca konsol standar olarak sizin kullanici adiniza ait olan home klasöründen açılır. Bunu konsol üzerinde

$ pwd

yazarak kontrol edebilirsiniz. Çıktısı

/home/kullaniciadi/

olmalıdır. Burada benim de kullandığım ve internetteki dökümanlar üzerinde de kullanılan bir başka şey ise “$” sembolüdür. Linux konsolunda kullanıcı modu ve süper kullanıcı modu olmak üzere iki mod vardır. “$” sembolü ya da “#” sembolü sizin kodları hangi modda yazdığınızı belirtir. Eğer kodda “$” sembolü verildiyse kodumuzu normal bir kullanıcı olarak herhangi bir değişiklik yapmadan çaıştırabileceğiniz anlamına gelir. “$” sembolü yerine “#” sembolü kullanıldıysa o zaman normal kullanıcı modundan süper kullanıcı moduna geçmelisiniz. Bunu yapmak için

$ sudo su

yazmamız yeterli olacaktır. Bu komuttan sonra konsol satırı

root@bilgisayaradi:/home/kullaniciadi#

haline gelir ve süper kullanıcı hakları gerektiren komutları da çalıştırabilirsiniz.
Süper kullanıcı modunda bir konsol için ayrıca süper kullanıcı kipinde açılan konsol uygulamaları da bulunmaktadır. Bu programları dağıtımınızın ekle/kaldır programından bulup indirebilirsiniz.