diff options
author | jhb <jhb@FreeBSD.org> | 2005-06-22 15:24:00 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-06-22 15:24:00 +0000 |
commit | 6c5bcb1fd2ef5e07ba6f8b9bbc2709fd50c6e93a (patch) | |
tree | 01a101529daa726caa3a70a9426d05644a549e4e /games/random | |
parent | 10ae787bfbad9af16740652a649882b41ff8596d (diff) | |
download | FreeBSD-src-6c5bcb1fd2ef5e07ba6f8b9bbc2709fd50c6e93a.zip FreeBSD-src-6c5bcb1fd2ef5e07ba6f8b9bbc2709fd50c6e93a.tar.gz |
Correct an error in the previous revision. RAND_MAX is the maximum value
for rand(3), not random(3). random(3) is defined to return values between
0 and 2^31-1, so add a local RANDOM_MAX constant to this file that is
defined as 2^31-1 and use that in place of RAND_MAX.
Reviewed by: bde
Approved by: re (dwhite)
MFC after: 1 week
Diffstat (limited to 'games/random')
-rw-r--r-- | games/random/random.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/games/random/random.c b/games/random/random.c index 0e8f1aa..62c83ba 100644 --- a/games/random/random.c +++ b/games/random/random.c @@ -62,6 +62,12 @@ __FBSDID("$FreeBSD$"); #include "randomize_fd.h" +/* + * The random() function is defined to return values between 0 and + * 2^31 - 1 inclusive in random(3). + */ +#define RANDOM_MAX 0x7fffffffL + static void usage(void); int @@ -158,7 +164,7 @@ main(int argc, char *argv[]) /* Compute a random exit status between 0 and denom - 1. */ if (random_exit) - return (int)((denom * random()) / RAND_MAX); + return (int)((denom * random()) / RANDOM_MAX); /* * Select whether to print the first line. (Prime the pump.) @@ -166,7 +172,7 @@ main(int argc, char *argv[]) * 0 (which has a 1 / denom chance of being true), we select the * line. */ - selected = (int)(denom * random() / RAND_MAX) == 0; + selected = (int)(denom * random() / RANDOM_MAX) == 0; while ((ch = getchar()) != EOF) { if (selected) (void)putchar(ch); @@ -176,7 +182,7 @@ main(int argc, char *argv[]) err(2, "stdout"); /* Now see if the next line is to be printed. */ - selected = (int)(denom * random() / RAND_MAX) == 0; + selected = (int)(denom * random() / RANDOM_MAX) == 0; } } if (ferror(stdin)) |