|  | /* | 
|  | * Simple random data generator used to create reproducible test files. | 
|  | * This is inspired from POSIX.1-2001 implementation example for rand(). | 
|  | * Copyright (C) 2007 by Nicolas Pitre, licensed under the GPL version 2. | 
|  | */ | 
|  |  | 
|  | #include <stdio.h> | 
|  | #include <stdlib.h> | 
|  |  | 
|  | int main(int argc, char *argv[]) | 
|  | { | 
|  | unsigned long count, next = 0; | 
|  | unsigned char *c; | 
|  |  | 
|  | if (argc < 2 || argc > 3) { | 
|  | fprintf( stderr, "Usage: %s <seed_string> [<size>]", argv[0]); | 
|  | return 1; | 
|  | } | 
|  |  | 
|  | c = (unsigned char *) argv[1]; | 
|  | do { | 
|  | next = next * 11 + *c; | 
|  | } while (*c++); | 
|  |  | 
|  | count = (argc == 3) ? strtoul(argv[2], NULL, 0) : -1L; | 
|  |  | 
|  | while (count--) { | 
|  | next = next * 1103515245 + 12345; | 
|  | if (putchar((next >> 16) & 0xff) == EOF) | 
|  | return -1; | 
|  | } | 
|  |  | 
|  | return 0; | 
|  | } |