Index: src/usr.bin/uuidgen/uuidgen.1 =================================================================== RCS file: /home/ncvs/src/usr.bin/uuidgen/uuidgen.1,v retrieving revision 1.3 diff -u -r1.3 uuidgen.1 --- src/usr.bin/uuidgen/uuidgen.1 1 Nov 2002 06:20:14 -0000 1.3 +++ src/usr.bin/uuidgen/uuidgen.1 14 Mar 2003 17:15:17 -0000 @@ -34,6 +34,7 @@ .Nm .Op Fl 1 .Op Fl n Ar count +.Op Fl o Ar output_file .Sh DESCRIPTION The .Nm @@ -52,6 +53,11 @@ This option controls the number of identifiers generated. By default, multiple identifiers are generated in batch. +.It Fl o +Output generated by +.Nm +is written to +.Ar output_file . .El .Pp Batched generation yields a dense set of identifiers in such a way that there Index: src/usr.bin/uuidgen/uuidgen.c =================================================================== RCS file: /home/ncvs/src/usr.bin/uuidgen/uuidgen.c,v retrieving revision 1.2 diff -u -r1.2 uuidgen.c --- src/usr.bin/uuidgen/uuidgen.c 1 Nov 2002 06:20:14 -0000 1.2 +++ src/usr.bin/uuidgen/uuidgen.c 14 Mar 2003 17:14:55 -0000 @@ -37,7 +37,7 @@ static void usage(void) { - (void)fprintf(stderr, "usage: uuidgen [-1] [-n count]\n"); + (void)fprintf(stderr, "usage: uuidgen [-1] [-n count] [-o output_file]\n"); exit(1); } @@ -47,10 +47,11 @@ uuid_t *store, *uuid; char *p; int ch, count, i, iterate; + FILE *fp = NULL; /* output file */ count = -1; /* no count yet */ iterate = 0; /* not one at a time */ - while ((ch = getopt(argc, argv, "1n:")) != -1) + while ((ch = getopt(argc, argv, "1n:o:")) != -1) switch (ch) { case '1': iterate = 1; @@ -62,6 +63,11 @@ if (*p != 0 || count < 1) usage(); break; + case 'o': + fp = fopen(optarg, "w"); + if (fp == NULL) + err(1, "fopen"); + break; default: usage(); } @@ -93,10 +99,16 @@ uuid = store; while (count--) { uuid_to_string(uuid++, &p, NULL); - printf("%s\n", p); + if (fp == NULL) { + printf("%s\n", p); + } else { + fprintf(fp, "%s\n", p); + } free(p); } free(store); + if (fp != NULL) + fclose(fp); return (0); }