Kamus on Terminal ( C Version )

Sebelumnya setelah membuat program kamus, ada opsi yang akan ditambahkan yaitu opsi -a (untuk penambahan text ke dalam file dictionary). Namun tiba-tiba terlintas di pikiran W jika program ini W tambahin terus menerus kata-kata ke dalam file dictionary nya, besar kemungkinan akan membuat program di execute lebih lama karena besarnya file dictionary.
Masalah ini W tanya di forum-forum, gimana cara menyelesaikan masalah seperti ini, setelah begitu banyak solusi, yang paling banyak ngasih bantuan bilangnya gini “write in C”.

Yah mungkin W harus coba untuk menulis program ini ke dalam bahasa C, dan ini dia kode yang W tulis dengan bahasa C.

#include   
#include   
#include   
   
void helpMe() {  
printf("simple gkamus v0.1  
Program ini menggunakan file \"gkamus-{en,id}.dict\" sebagai wordlist.  
Program ini tidak berhubungan dengan program gkamus,  
kecuali penggunaan kamus bawaan dari program gkamus.  
Lisensi \"gkamus-{en,id}.dict\", lihat file.  
Licensed (proudly) under GPL.  
   
Option:  
 -i 'text'\t translate 'text' ke bahasa Indonesia (default).  
 -e 'text'\t translate 'text' ke bahasa Indonesia.  
 -a 'to:text:def'\t tambahkan 'text' ke dalam kamus, dengan 'def' sebagai penjelasan.  
     ex: gk -a 'e:mv:move file'  
         gk -a 'i:asik:fun'  
-  
--------------  
ambo:\n");  
  exit(0);  
}  
int main(int argc , char *argv[])  
{  
  FILE *bFile;  
  int bfSize=1024;  
  char kamus[256]="/usr/share/gkamus/";  
  char file[]="gkamus-en.dict";  
  char find[100];  
  char *line;  
  char *thatis;  
   
  if(argc==2) {  
    strcpy(find, argv[1]);  
  }  
  else if(argc==3) {  
    if(strcmp(argv[1],"-e")==0){  
      strcpy(find, argv[2]);  
    }  
    else if(strcmp(argv[1], "-i")==0){  
      strcpy(file, "gkamus-id.dict");  
      strcpy(find, argv[2]);  
    }  
  }  
  else{  
    helpMe();  
  }  
   
  strcat (kamus, file);  
  bFile=fopen(kamus, "r");  
  line = (char*) malloc (sizeof (char) * bfSize);  
  if(line==NULL){  
    perror("memori error");  
    exit(2);  
  }  
  if(!bFile) { perror("Error");}  
  else{  
    while(!feof(bFile)){  
      fgets(line, bfSize, bFile);  
      thatis=strtok(line,"\t");  
      if(strcmp(thatis,find)==0){  
       printf("%s", strtok(NULL,"\t"));  
       exit(0);  
      }  
    }  
    fclose(bFile);  
  }  
  free(line);  
   
}


  



  



Program ini ditulis dengan standar librari jadi bisa digunakan di platform manapun.