diff options
author | Jakob Kaivo <jkk@ung.org> | 2019-02-27 19:22:26 -0500 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2019-02-27 19:22:26 -0500 |
commit | f08b1ae89f4fa107826db7359216f56f43b7fa08 (patch) | |
tree | 97d95626b185624bd467c64b071b1d371dfd77cd | |
parent | 225d7a2bebf7a4feed89eff97b5bd6a9c805ada7 (diff) |
implement as macro to be shared with rand_r
-rw-r--r-- | src/stdlib/_rand.h | 4 | ||||
-rw-r--r-- | src/stdlib/rand.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/stdlib/_rand.h b/src/stdlib/_rand.h new file mode 100644 index 00000000..7f7102ef --- /dev/null +++ b/src/stdlib/_rand.h @@ -0,0 +1,4 @@ +#include <limits.h> + +#define _rand(_n) \ + (((_n) = (_n) * 1103515245 + 12345) ? (_n) / UINT_MAX % RAND_MAX : 0) diff --git a/src/stdlib/rand.c b/src/stdlib/rand.c index bd561736..459332ce 100644 --- a/src/stdlib/rand.c +++ b/src/stdlib/rand.c @@ -1,12 +1,11 @@ #include <stdlib.h> #include "nonstd/internal.h" +#include "_rand.h" /** get a pseudo-random number **/ int rand(void) { - /* FIXME: forward dependency on POSIX.1c-1995 */ - extern int rand_r(unsigned int*); - return rand_r(__libc(RAND)); + return _rand(*(unsigned*)__libc(RAND)); } /*** |