$ cat proga.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int y;
#define RANDOMDEV "/dev/urandom"
char buf[512];
unsigned long seed;
int fd = open(RANDOMDEV,O_RDONLY,0644);
if(fd<0)
printf("Can't open file");
(void)read(fd, buf, sizeof(buf));
seed = strtoul(buf, NULL, 10);
srand(seed);
y=rand();
close(fd);
printf("%d\n",y);
return 0;
}
$gcc -lm try2.c -o try2
И при каждом запуске прога выдаёт одно и то же число.(Точнее,чаще всего одно и то же.Вообще,бывают просткакивают и другие.Где-то на 20-й запуск:) ) В чём проблема? Что я делаю неправильно?
Похожие темы
- Форум non-blocking write (2011)
- Форум Help! Почему вызов ioctl FIONREAD для файла /dev/random завершается неудачей?! (2003)
- Форум математика (2005)
- Форум Системный вызов sendfile ??? (2008)
- Форум Программа на Си падает, при выделении памяти (2014)
- Форум FIFO,write,read (2017)
- Форум Как изменить максимальное число открытых файлов ? (2006)
- Форум не могу прочитать kmem (2007)
- Форум SIGIO и чужой терминал (2008)
- Форум вопрос про select() (2013)