int main();
Ini adalah deklarasi sederhana. Tidak dapat mengambil argumen baris perintah.
int main(int argc, char* argv[]);
Deklarasi ini digunakan ketika program Anda harus mengambil argumen baris perintah. Ketika dijalankan seperti itu:
myprogram arg1 arg2 arg3
argc, atau Jumlah Argumen, akan ditetapkan ke 4 (empat argumen), dan argv, atau Vektor Argumen, akan diisi dengan pointer string ke "myprogram", "arg1", "arg2", dan "arg3". Doa program ( myprogram) termasuk dalam argumen!
Atau, Anda dapat menggunakan:
int main(int argc, char** argv);
Ini juga valid.
Ada parameter lain yang dapat Anda tambahkan:
int main (int argc, char *argv[], char *envp[])
The envpparameter juga mengandung variabel lingkungan. Setiap entri mengikuti format ini:
VARIABLENAME=VariableValue
seperti ini:
SHELL=/bin/bash
Daftar variabel lingkungan diakhiri null.
PENTING: JANGAN menggunakan nilai apa pun argvatau envplangsung dalam panggilan ke system()! Ini adalah lubang keamanan besar karena pengguna jahat dapat mengatur variabel lingkungan ke perintah baris perintah dan (berpotensi) menyebabkan kerusakan besar. Secara umum, jangan gunakan system(). Hampir selalu ada solusi yang lebih baik diimplementasikan melalui perpustakaan C.