c – 如何生成一个好的随机种子传递给srand()?

前端之家收集整理的这篇文章主要介绍了c – 如何生成一个好的随机种子传递给srand()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个C程序,需要为其内部用法创建一个临时文件.我想允许通过运行多个进程来同时执行程序,因此临时文件名需要随机化,这样每个生成的进程将生成一个唯一的临时文件名供自己使用.

我使用rand()为部分文件生成随机字符,所以我需要使用srand()初始化随机生成器的种子.

有什么选择可以将一个好的参数传递给srand(),这样两个进程就不会用相同的种子值进行初始化?
我的代码需要在WindowsLinux上运行.

解决方法

问题实际上是询问如何创建一个唯一命名的临时文件.

操作系统可能为此提供API,这意味着您不必生成自己的名称.

在Windows上,它被称为GetTempFileName() and GetTempPath().

在Unix上,使用tmpfile().

(Windows也支持tmpfile();但是,我听过其他人的报告,虽然它在XP上工作得很好,如果你在C:驱动器上并且你不是管理员,它在Vista上会失败;最好使用具有自定义安全路径的GetTempFileName()方法)

原文链接:https://www.f2er.com/c/116905.html

猜你在找的C&C++相关文章