comparison srogue/mdport.c @ 252:3d4252fa2ed3

Use more portable random seed generation. The new function md_random_seed() has replaced time() + getpid() and similar methods. Putting everything in mdport.c slightly reduces the warnings and workarounds.
author John "Elwin" Edwards
date Sat, 28 Jan 2017 15:49:41 -0500
parents fb25a62680c7
children 8b6aba552f6f
comparison
equal deleted inserted replaced
251:e7862a021609 252:3d4252fa2ed3
94 #include <ctype.h> 94 #include <ctype.h>
95 #include <fcntl.h> 95 #include <fcntl.h>
96 #include <limits.h> 96 #include <limits.h>
97 #include <sys/stat.h> 97 #include <sys/stat.h>
98 #include <signal.h> 98 #include <signal.h>
99 #include <time.h>
99 100
100 #if !defined(PATH_MAX) && defined(_MAX_PATH) 101 #if !defined(PATH_MAX) && defined(_MAX_PATH)
101 #define PATH_MAX _MAX_PATH 102 #define PATH_MAX _MAX_PATH
102 #endif 103 #endif
103 104
426 { 427 {
427 #ifdef HAVE_GETGID 428 #ifdef HAVE_GETGID
428 return( getgid() ); 429 return( getgid() );
429 #else 430 #else
430 return(42); 431 return(42);
431 #endif
432 }
433
434 pid_t
435 md_getpid(void)
436 {
437 #ifdef _WIN32
438 return( _getpid() );
439 #else
440 return( getpid() );
441 #endif 432 #endif
442 } 433 }
443 434
444 char * 435 char *
445 md_getusername(void) 436 md_getusername(void)
1562 srandom(seed); 1553 srandom(seed);
1563 #else 1554 #else
1564 srand(seed); 1555 srand(seed);
1565 #endif 1556 #endif
1566 } 1557 }
1558
1559 unsigned int
1560 md_random_seed(void)
1561 {
1562 unsigned int seed;
1563 seed = (unsigned int) time((time_t *) NULL);
1564 #ifdef _WIN32
1565 seed += _getpid();
1566 #else
1567 seed += getpid();
1568 #endif
1569 return seed;
1570 }