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
argcveya Bağımsız Değişken Sayısı, 4 (dört bağımsız değişken) olarak ayarlanır ve argvveya 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[])
envpParametresi 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 argvveya envpdeğ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.