Как изменить значение константы RAND_MAX? - C (СИ)
Формулировка задачи:
Константа RAND_MAX в хэдере stdlib.h в восьмой Студии равна 32767. Поменял её в этом файле: C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\stdlib.h. Не помогло. Как расширить диапазон?
Решение задачи: «Как изменить значение константы RAND_MAX?»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(void) {
FILE * f;
int32_t i32;
int64_t i64;
if ( ! ( f = fopen("/dev/urandom", "r") ) ) {
fprintf(stderr, "Can't open /dev/urandom");
exit(1);
}
if ( fread(&i32, sizeof(int32_t), 1, f) != 1 ) {
fprintf(stderr, "Can't read int32 from /dev/random\n");
if ( fclose(f) )
perror("fclose");
exit(1);
}
printf("Random int32: %d\n", i32);
if ( fread(&i64, sizeof(int64_t), 1, f) != 1 ) {
fprintf(stderr, "Can't read int64 from /dev/random\n");
if ( fclose(f) )
perror("fclose");
exit(1);
}
printf("Random int64: %lld\n", i64);
return fclose(f);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем переменные и инициализируем их начальными значениями
- Открываем файл /dev/urandom на чтение
- Читаем из файла в переменные i32 и i64 по 1 разу
- Выводим значения переменных i32 и i64 на экран
- Закрываем файл
- Возвращаем значение 0 при успешном закрытии файла или 1 при ошибке