我正在尝试在进程之间发送信号,我需要在我的信号生成循环中允许0.01到0.1秒之间的随机时间延迟.所以这就是我正在做的事情,它肯定不在0.01和0.1之间,而是在1秒之内.不知道我在这里缺少什么.
sleepTime = 100000L+(long)((1e6-1e5)*rand()/(RAND_MAX+1.0)); usleep(sleepTime);
解决方法
如果你有C 11:
#include <thread> #include <random> #include <chrono> int main() { std::mt19937_64 eng{std::random_device{}()}; // or seed however you want std::uniform_int_distribution<> dist{10,100}; std::this_thread::sleep_for(std::chrono::milliseconds{dist(eng)}); }
它可能不是你的教授所期待的.