7 void print_help(char name[])
10 printf("Simulates execution of an program. \n");
12 printf("Usage: %s name time [-eNN=MM [...]]\n", name);
13 printf(" name A label to print\n");
14 printf(" time Time for program to sleep in seconds\n");
16 printf("The default action of the program is to return with 0 (success) \n");
17 printf(" -eNN=MM Return with value NN with a probability of MM% \n");
22 void parse_argv(char argv[], int *retval, int *percentage)
24 if ( sscanf(argv,"-e %d = %d",retval,percentage)!=2 )
26 printf("Argument sytax error : %s \n", argv);
30 if ( *percentage <= 0 )
32 printf("Percentage argument must be > 0");
39 int main (int argc, char** argv)
42 int sleep_time, i, rand_value, retval, sum;
58 if ( sscanf(argv[2],"%d",&sleep_time)!=1 )
60 printf("Argument sytax error : %s \n", argv[2]);
64 for (i=3; i<argc; i++)
66 parse_argv(argv[i], retvals+i-3, percentages+i-3);
70 /* Get random number in interval [0,100) */
73 rand_value = rand() % 100; //I know, bad practice
75 /* See if we want to fire an "error" */
78 for (i=0; i<argc-3; i++)
80 sum += percentages[i];
81 if ( rand_value < sum )
93 for (i=0; i<70-strlen(name); i++)
97 printf("%d\n", retval);