我使用rand()为部分文件名生成随机字符,所以我需要使用srand()初始化随机数生成器的种子.
有什么选择可以将一个好的参数传递给srand(),这样两个进程就不会用相同的种子值进行初始化?我的代码需要在Windows和Linux上运行.
操作系统可能为此提供API,这意味着您不必生成自己的名称.
在Windows上,它被称为GetTempFileName() and GetTempPath().
GetTempFileName()
GetTempPath()
在Unix上,使用tmpfile().
tmpfile()
(Windows也支持tmpfile();但是,我听过其他人的报告,虽然它在XP上工作得很好,如果你在C:驱动器上并且你不是管理员,它在Vista上会失败;最好使用具有自定义安全路径的GetTempFileName()方法)