int main();
Bu basit bir deklarasyon. Herhangi bir komut satırı argümanı alamaz.
int main(int argc, char* argv[]);
Bu bildirim, programınızın komut satırı bağımsız değişkenleri alması gerektiğinde kullanılır. Böyle çalıştığında:
myprogram arg1 arg2 arg3
argc
veya Bağımsız Değişken Sayısı, 4 (dört bağımsız değişken) olarak ayarlanır ve argv
veya Bağımsız Değişken Vektörleri, "myprogram", "arg1", "arg2" ve "arg3" dizelerine işaretçilerle doldurulur. Program çağırma ( myprogram
) argümanlarına dahil edilir!
Alternatif olarak şunları kullanabilirsiniz:
int main(int argc, char** argv);
Bu da geçerlidir.
Ekleyebileceğiniz başka bir parametre var:
int main (int argc, char *argv[], char *envp[])
envp
Parametresi de ortam değişkenlerini içerir. Her girdi şu biçimi izler:
VARIABLENAME=VariableValue
bunun gibi:
SHELL=/bin/bash
Ortam değişkenleri listesi boş.
ÖNEMLİ: Doğrudan aramalarda herhangi bir değer argv
veya envp
değer KULLANMAYIN system()
! Kötü niyetli kullanıcılar, ortam değişkenlerini komut satırı komutlarına ayarlayabildiği ve (potansiyel olarak) büyük hasara neden olabileceği için bu büyük bir güvenlik açığıdır. Genel olarak, sadece kullanmayın system()
. C kütüphaneleri aracılığıyla neredeyse her zaman daha iyi bir çözüm uygulanmaktadır.