Added basic argument parsing

This commit is contained in:
Adam Goldsmith 2016-04-25 17:07:24 -04:00
parent 568fa2a6f8
commit 2a8124df09

51
csim.c
View File

@ -1,7 +1,56 @@
#include <stdlib.h>
#include <stdio.h>
#include "cachelab.h" #include "cachelab.h"
int main() void print_usage()
{ {
printf("Usage:\n");
exit(0);
}
int parse_int_arg(char* arg)
{
int i = atoi(arg);
if (i != 0)
return i;
else
exit(-1);
}
int main(int argc, char* argv[])
{
int set_bits = 0, lines = 0, block_bits = 0, verbose = 0;
char* filename;
int ii;
for (ii = 0; ii < argc; ii++)
{
switch (argv[ii][1])
{
case 'h':
//print_usage();
break;
case 'v':
verbose = 1;
break;
case 's':
set_bits = parse_int_arg(argv[ii+1]);
break;
case 'E':
lines = parse_int_arg(argv[ii+1]);
break;
case 'b':
block_bits = parse_int_arg(argv[ii+1]);
break;
case 't':
filename = argv[ii+1];
break;
}
}
printf("Arguments: %d, %d, %d, %d, %s\n", set_bits, lines, block_bits, verbose, filename);
if(!set_bits|| !lines || !block_bits || !filename)
print_usage();
printSummary(0, 0, 0); printSummary(0, 0, 0);
return 0; return 0;
} }