int main (int argc,char *argv[]){ // all args are meant to be brought if (argc!=1) { char file_name[4096]; char file_addr[4096]; char wrk_dir[4096]; int i; // get file path if (getWorkingDir(&wrk_dir)==0) { if (DEBUG) printf ("[debug] wrk_dir = %s\n",wrk_dir); } if (DEBUG) printf("[debug] sizeof(argc)=%d\n",sizeof(argc)); for (i = 1; i < argc; i++) { strcpy(file_name,argv[i]); if (DEBUG) printf("[debug] file_name = %s\n",file_name); fileExist(file_name); sprintf(file_addr,strcat(strcat(wrk_dir,"/"),file_name)); if (DEBUG) printf("[debug] file_addr=%s\n",file_addr); // add a comma if more than 1 exists if (argc-i!=0) storePath(strcat(file_addr,",")); else storePath(file_addr); } return 0; } else { // if none, drop // check for file waiting to be dropped if (bring_it()!=0){ printf("No file to be brought.\n"); } } if (DEBUG) printf("[debug] returning\n"); return 0; }
int main(int argc, char *argv[]){ if(argc == 1){ printf("Very Few Arguments\n"); printf("File Name Missing\n"); exit(1); } list *l = (list *)malloc(sizeof(list)); init(l); path *paths; FILE *fp; int i, j, flag = 0, SIZE = 1024, USIZE = 1024, uCount, uFlag = 0, uFlag_1 = 0, uTmp; char zipFileName[32] = "", *buffer, *binary, *output, *huffList, character, dflag, cnt, *saket; for(i = 0; argv[1][i] != '\0'; i++){ zipFileName[i] = argv[1][i]; } zipFileName[i++] = '.'; zipFileName[i++] = 's'; zipFileName[i++] = 'a'; zipFileName[i++] = 'k'; fp = fopen(argv[1], "r"); if(!fp){ printf("File Doesn't Exist\n"); exit(2); } buffer = (char *)malloc(SIZE * sizeof(char)); i = 0; while((character = getc(fp)) != EOF){ buffer[i] = character; if(i >= (SIZE - 1)){ SIZE *= 2; buffer = (char *)realloc(buffer, SIZE); } if(flag == 0){ append(l, character); flag = 1; } else searchAndAdd(l, character); i++; } buffer[i] = '\0'; fclose(fp); bubbleSort(l); //Initial Sorting According to Weight. l = huffmanTree(l); assignPath(l); paths = (path *)malloc(l->cnt * sizeof(path)); storePath(l->head, paths); huffList = (char *)malloc(SIZE * sizeof(char)); storeHuffList(huffList, paths, l->cnt); binary = (char *)malloc(SIZE * sizeof(char)); binaryConversion(buffer, binary, paths); printf("%s\n", binary); i = strlen(binary); printf("%d\n", i); free(buffer); free(paths); appendRedundantBits(binary); printf("%s\n", binary); output = (char *)malloc(SIZE * sizeof(char)); binToAscii(binary, output); printf("%s\n", output); free(binary); dflag = (char)252; //11111100 cnt = (char)l->cnt;//nodeCount fp = fopen(zipFileName, "w+"); fprintf(fp, "%c", cnt); fprintf(fp, "%s", huffList); fprintf(fp, "%c", dflag); fprintf(fp, "%s", output); free(huffList); free(output); fclose(fp); printf("\nCompressed\n\t-------------------------------------------------------------------------------------------------------------\n"); return 0; }