Berikut akan dibahas pengendalian command-line dengan menyertakan argumen atau biasa pula disebut dengan switch. Contoh command-line adalah perintah ls yaitu perintah kepada sistem operasi (Unix) untuk menampilkan daftar isi dari suatu direktori aktif. Jika kita tambahkan opsi -l (ls -l) maka ini berarti kita melakukan perintah ls dengan long-listing dimana isi dari direktori yang aktif akan ditampilkan beserta atribut-atribut yang melekat padanya. Penggunaan opsi -l ini yang dalam pembahasan kita ini, kita sebut sebagai argumen command-line atau switch. Dengan switch kita bisa memodifikasi perilaku dari suatu program, pada contoh di atas : -l merubah perilaku (format penampilan daftar) dari perintah/program ls.
Secara konsep, switch berperilaku seperi argumen dari suatu fungsi dalam C. Switch dilewatkan antar program sistem operasi, persis sama dengan pelewatan argumen antar fungsi. Switch dilewatkan sebagai argumen dari fungsi main(). Penulisan argumen adalah sebagai berikut :
main(int argc, char** argv)
Ada dua argumen yang dilewatkan, yang pertama argv adalah sebuah array string karakter. Dan yang kedua adalah sebuah integer, argc, yang menentukan jumlah string dalam array argv. Sintaks deklarasi char** argv menandakan bahwa argv merupakan pointer to pointer to character atau pointer sebuah array karakter atau disebut pula sebagai sebuah array string karakter. Karena berupa array, sehingga kita boleh pula menuliskan deklarasinya seperti berikut :
main(int argc, char** argv[])
Ketika kita menjalankan suatu program, maka array argv memuat semua informasi perihal command-line dan argumen/switch yang disertakan. Pemisah antara command-line dan argumen-argumen yang menyertainya adalah karakter spasi atau spasi kosong (whitespace). Integer argc diberi nilai sebanyak string yang akan dimuatkan. Misalnya kita ingin menjalankan perintah ls -ls, maka kita membutuhkan argc sama dengan 2, dengan perincian sebagai berikut :
argc = 2
argv[0] = “ls”
argv[1] = “-la”
Ok, kita akan menerapkan pengetahuan kita di atas untuk memodifikasi program cpstandar yang telah kita buat pada waktu terdahulu menjadi bisa menggunakan argumen. Argumen yang akan kita gunakan adalah nama file yang akan disalin dan file hasil penyalinnya. Sehingga program penyalin file kita ini menjadi lebih interaktif. Inilah file modifikasi dari cpstandar.c :
File standar2.c
#include <stdio.h>
main(int argc, char** argv)
{
int c;
FILE *in, *out;
in = fopen(argv[1], “r”);
out = fopen(argv[2], “w”);
while ((c = fgetc(in)) != EOF)
fputc(c, out);
}
Runtut proses eksekusinya :
$ ls -l test*
-rw-r–r– 1 handaru handaru 24 Sep 6 08:37 test
$ ./cpstandar2 test test2
$ ls -l test*
-rw-r–r– 1 handaru handaru 24 Sep 6 08:37 test
-rw-r–r– 1 handaru handaru 24 Sep 6 08:38 test2
$
pada contoh ini berlaku :
argc = 3
argv[0] = ./cpstandar2
argv[1] = test
argv[2] = test2
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa