creat_rand.c 576 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <time.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <sys/types.h>
  5. #include <grass/config.h>
  6. #ifndef USE_RAND
  7. #ifndef HAVE_DRAND48
  8. #define lrand48() (((long) rand() ^ ((long) rand() << 16)) & 0x7FFFFFFF)
  9. #define srand48(sv) (srand((unsigned)(sv)))
  10. #endif
  11. long make_rand(void)
  12. {
  13. return lrand48();
  14. }
  15. void init_rand(void)
  16. {
  17. srand48((long)time((time_t *) 0));
  18. }
  19. #else
  20. static long labs(int n)
  21. {
  22. return n < 0 ? (-n) : n;
  23. }
  24. long make_rand(void)
  25. {
  26. return (labs(rand() + (rand() << 16)));
  27. }
  28. void init_rand(void)
  29. {
  30. srand(getpid());
  31. }
  32. #endif