Portál AbcLinuxu, 6. listopadu 2025 10:34
Řešení dotazu:
$ python
Python 2.5.5 (r255:77872, Feb 2 2010, 00:25:36)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> ord(open("/dev/random").read(1))
94
>>> ord(open("/dev/random").read(1))
36
>>> ord(open("/dev/random").read(1))
194
...
Vzhledem k tomu, že se jedná o poněkud vzácný zdroj, je možné získaným číslem (integerem, takže 4 nebo 8 bajtů) inicializovat libc generátor "náhodných" čísel funkcí srand(). V C bych s tím pracoval prostě nějak takto:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
unsigned int num = 0;
FILE *f = fopen("/dev/random", "rb");
if (f == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}
if (fread(&num, sizeof(num), 1, f) != 1) {
fprintf(stderr, "read failed\n");
exit(EXIT_FAILURE);
}
if (fclose(f) != 0) {
perror("fclose");
exit(EXIT_FAILURE);
}
printf("Random number from /dev/random: %u\n", num);
/* inicializace a ukazka pseudo-nahodneho generatoru nahodnych cisel */
srand(num);
printf("%d\n", rand());
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.