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 15 Mar 2003 00:43:12 -0000 @@ -34,6 +34,7 @@ .Nm .Op Fl 1 .Op Fl n Ar count +.Op Fl o Ar filename .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 filename . .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 15 Mar 2003 00:52:47 -0000 @@ -37,20 +37,23 @@ static void usage(void) { - (void)fprintf(stderr, "usage: uuidgen [-1] [-n count]\n"); + (void)fprintf(stderr, "usage: uuidgen [-1] [-n count] [-o filename]\n"); exit(1); } int main(int argc, char *argv[]) { + FILE *fp; /* output file */ uuid_t *store, *uuid; char *p; int ch, count, i, iterate; count = -1; /* no count yet */ iterate = 0; /* not one at a time */ - while ((ch = getopt(argc, argv, "1n:")) != -1) + fp = stdout; + + while ((ch = getopt(argc, argv, "1n:o:")) != -1) switch (ch) { case '1': iterate = 1; @@ -62,6 +65,13 @@ if (*p != 0 || count < 1) usage(); break; + case 'o': + if (fp != stdout) + errx(1, "multiple output files not allowed"); + fp = fopen(optarg, "w"); + if (fp == NULL) + err(1, "fopen"); + break; default: usage(); } @@ -93,10 +103,12 @@ uuid = store; while (count--) { uuid_to_string(uuid++, &p, NULL); - printf("%s\n", p); + fprintf(fp, "%s\n", p); free(p); } free(store); + if (fp != stdout) + fclose(fp); return (0); }