Added basic argument parsing
This commit is contained in:
parent
568fa2a6f8
commit
2a8124df09
51
csim.c
51
csim.c
@ -1,7 +1,56 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.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);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user