int main(int argc, char**argv){ if(argc!=5) { print_man(); } else { if(!strcmp(argv[1],"-s")) { printf("Splitting rom...\n"); split_files(argv[2],argv[3],argv[4]); } else if(!strcmp(argv[1],"-m")) { printf("Merging rom...\n"); merge_file(argv[2],argv[3],argv[4]); } else { print_man(); } } return 0; }
int main (int argc, char * argv[]) { if (argc < 3) { printf("usage : %s wig bedfile1 name1 bedfile1 name2 ...\n", argv[0]) ; return 1 ; } char ** beds ; // array of char arrays char ** names ; // same char * wig ; // array of chars (string) int i, j, k ; // count variables int num = ( argc - 1 ) / 2 ; // num of beds and names char ** chromosomes ; // common chrs int num_chrs ; char *** bedfiles ; // list of temp names (AAH **** ptr NO) (3D) char ** wigfiles ; // list of temp names // all this just to get filenames! make into seperate function with *** // why am I malloc - ing everything instead of char array[80] ? // don't want filename char limits // remember to free() at end // DO NOT TOUCH THIS BLOCK !!! All segfaults solved <------- wig = (char *) malloc ( (strlen(argv[1]) + 1) * sizeof(char) ) ; beds = (char **) malloc (num * sizeof(char *)) ; names = (char **) malloc (num * sizeof(char *)) ; int bedcount = 0; int namecount = 0 ; for (k = 0 ; k <= strlen(argv[1]) ; k++) wig[k] = argv[1][k] ; for (i = 2 ; i < argc ; i++) { if (i % 2 == 0) { beds[bedcount] = (char *) malloc (strlen(argv[i] + 1) * sizeof(char)) ; for (j = 0 ; j <= strlen(argv[i]) ; j++) beds[bedcount][j] = argv[i][j] ; bedcount++ ; } else { names[namecount] = (char *) malloc (strlen(argv[i] + 1) * sizeof(char)) ; for (j = 0 ; j <= strlen(argv[i]) ; j++) names[namecount][j] = argv[i][j] ; namecount ++ ; } } if (bedcount != namecount) { printf("Error! Num of beds != Num of names! Bed : %d, Name %d\n", bedcount, namecount) ; printf("Exiting\n") ; return 1 ; } // got filenames if (validate(wig, beds, num)) { printf ("Exiting\n") ; return 1 ; } // -----------> DO NOT TOUCH // should I do lowmem version? num_chrs = get_chrs(wig, beds, num, &chromosomes) ; split_files(wig, beds, num, chromosomes, num_chrs, &bedfiles, &wigfiles) ; // there has to be a better way than this // debug print statements /* printf("wig : %s\n", wig) ; int n ; for (n = 0 ; n < num ; n ++) { printf("bed %d : %s name : %s\n", n, beds[n], names[n]) ; } */ return 0 ; } // main ()