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 envp
parameter 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 argv
atau envp
langsung 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.