Index: ossp-pkg/l2/l2tool.c RCS File: /v/ossp/cvs/ossp-pkg/l2/l2tool.c,v rcsdiff -q -kk '-r1.4' '-r1.5' -u '/v/ossp/cvs/ossp-pkg/l2/l2tool.c,v' 2>/dev/null --- l2tool.c 2003/01/06 11:41:52 1.4 +++ l2tool.c 2003/09/25 13:12:06 1.5 @@ -31,6 +31,11 @@ #include #include "l2.h" +#include +extern int getopt(int, char *const *, const char *); +extern int optind; +extern char *optarg; + static void die(l2_env_t *env, l2_result_t rv, char *fmt, ...) { va_list ap; @@ -45,6 +50,13 @@ exit(1); } +static void usage(void) +{ + fprintf(stderr, "l2tool:ERROR: invalid command line\n"); + fprintf(stderr, "l2tool:USAGE: l2tool [-s sleepsec] \n"); + exit(1); +} + int main(int argc, char *argv[]) { l2_channel_t *ch; @@ -57,14 +69,23 @@ char *cpMsg; char *cp; unsigned int nLevel; + int option; + int nSleep = 0; - /* minimal command line parsing */ - if (argc != 2) { - fprintf(stderr, "l2tool:ERROR: invalid command line\n"); - fprintf(stderr, "l2tool:USAGE: l2tool \n"); - exit(1); + /* command line parsing */ + while ((option = getopt(argc, argv, "s:")) != EOF) { + switch ((char) option) { + case 's': + nSleep = atoi(optarg); + break; + default: + usage(); + /* NOTREACHED */ + } } - spec = argv[1]; + if (argc - optind != 1) + usage(); + spec = argv[optind]; /* create environment */ if ((rv = l2_env_create(&env)) != L2_OK) @@ -101,6 +122,9 @@ /* perform log operation(s) */ if ((rv = l2_channel_log(ch, nLevel, "%s", cpMsg)) != L2_OK) die(env, rv, "failed to log message to channel tree"); + + /* artifical delay */ + sleep(nSleep); } /* destroy channel tree */