Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void help (char * name)
- {
- fprintf (stderr, "Usage:\n");
- fprintf (stderr, " %s help\n", name);
- fprintf (stderr, " %s <id>\n", name);
- }
- void die (void)
- {
- fprintf (stderr, "Aborting\n");
- exit (1);
- }
- void usage (char * name)
- {
- fprintf (stderr, "!!ERROR!! Wrong invocation\n");
- help (name);
- die ();
- }
- double parse_value (char * string)
- {
- char * last;
- double value;
- value = strtod (string, &last);
- if (last == string) {
- fprintf (stderr, "Cannot parse value: `%s`\n", string);
- die ();
- } else if (last[0] != 0) {
- fprintf (stderr, "Partialy parsed value: `%s`\n", string);
- die ();
- }
- return (value);
- }
- void f1 (int argument_count, char * arguments[])
- {
- char buff[10];
- memset(buff,0,sizeof(buff));
- strcpy(buff,"abcd");
- printf("buff = %s",&(*buff));
- exit (0);
- }
- void f2 (int argument_count, char * arguments[])
- {
- int x = parse_value (arguments[1]);
- printf("Value = %d",x);
- exit (0);
- }
- void f3 (int argument_count, char * arguments[])
- {
- unsigned sz = (unsigned)parse_value(arguments[1]);
- while (--sz >=0)
- printf("Value sz = %d",sz);
- exit (0);
- }
- void f4 (int argument_count, char * arguments[])
- {
- int f;
- if (f == parse_value(arguments[1]))
- {
- f = parse_value(arguments[0]);
- printf("Value f = %d",f);
- }
- exit (0);
- }
- int main (int argc, char *argv[])
- {
- if (argc < 2)
- usage (argv[0]);
- if (strcmp (argv[1], "help") == 0) {
- help (argv[0]);
- exit (0);
- } if (strcmp (argv[1], "1") == 0)
- f1 (argc, argv);
- else if (strcmp (argv[1], "2") == 0)
- f2 (argc, argv);
- else
- if (strcmp (argv[1], "3") == 0)
- f3 (argc, argv);
- else
- if (strcmp (argv[1], "3") == 0)
- f4 (argc, argv);
- usage (argv[0]);
- printf ("command not executed\n");
- die ();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement