Есть 2 функции. unsigned int get_rand(void) { srand(time(0)); int a=rand(); label: if (a>255) { a=a/3; goto label;//да-да, извращение } } И вторая volatile unsigned int i, counter, value; static void handler(void); unsigned int get_random(void) { struct itimerval x, y; i = 0; counter = 0; value = 0; x.it_interval.tv_sec = 0; x.it_interval.tv_usec = 1; x.it_value.tv_sec = 0; x.it_value.tv_usec = 1; if (setitimer(ITIMER_REAL, &x, &y) == -1) { perror("get_random()"); return 0; } signal(SIGALRM, handler); while (counter < 8) i++; signal(SIGALRM, SIG_IGN); if (setitimer(ITIMER_REAL, &y, (struct itimerval *) NULL) == -1) perror("get_random()"); return value; } void handler(void) { value = (value << 1) | (i & 0x1); counter++; i = 0; signal(SIGALRM, handler); } Да, я согласен, первая весьма крива. Но с виду, обе работают - возвращают случайное значение от 0 до 255 Спрашивается, какого хрена программа правильно работает при использовании второй функции и неправильно при использовании первой. кто-нибудь может объяснить, почему?

Ответ на:
комментарий
от asgard

Ответ на:
комментарий
от Lockywolf


Ответ на:
комментарий
от asgard


Ответ на:
комментарий
от asgard


Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от Lockywolf



Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от asgard

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от teferiincub

Ответ на:
комментарий
от Lockywolf

Ответ на:
комментарий
от KRoN73


Ответ на:
комментарий
от UrbanSerj


Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от anonymous

Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от KRoN73

Ответ на:
комментарий
от UrbanSerj

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как лучше сделать низкоточные таймеры? (2021)
- Форум функция с ограничением по времени исполнения (2006)
- Форум Обработка сигналов в линуксе (2017)
- Форум потоки и сигналы. (2005)
- Форум Переход от LinuxThreads к NTPL (2004)
- Форум Прога завершает работу с сообщением (2004)
- Форум POSIX таймеры (2011)
- Форум помогите разобраться (2005)
- Форум Почему программа выключается? (2017)
- Форум Возвращаясь: Семафоры в Red Hat 9.0 (2004)