Это не те же библиотеки. Linux предоставляет rand
через обычный libc
(обычно glibc
), используемый большинством программ Linux; Windows предоставляет другую «обычную» среду выполнения C, и многие компиляторы и инструменты связывают свою собственную версию.
glibc
довольно специфично для Linux ; вы всегда можете написать свою собственную заменяющую библиотеку srand
/ rand
/ RAND_MAX
, которая соответствует соглашениям Linux, но вы не можете просто использовать немодифицированный Linux.
Если вам нужен переносимый код, я бы предложил перейти на C ++ и использовать API C ++ 11 <random>
, который имеет четко определенную переносимую семантику. rand
ужасный PRNG, и работа над тем, чтобы сделать его портативным, никак не может исправить ужас.