提问人:Sterpu Mihai 提问时间:10/11/2023 更新时间:10/11/2023 访问量:22
mkstemp 在 Windows 和 Linux 之间的不同行为
different behaviour of mkstemp between windows and linux
问:
以下小应用程序在 Linux 和 Windows 上的行为会有所不同。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char template[100];
int main()
{
strncpy(template, "stXXXXXX", 11);
mkstemp(template);
printf("%s\n", template);
return 0;
}
当简单地多次执行时,它将在 Windows 和 Linux 上产生预期的结果(即具有随机名称的不同文件)。 但是,如果我们在每次执行后也删除生成的文件:
- 在 Linux 上,它将产生预期的结果
- 在 Windows 上,它将生成相同的文件
在 Linux 和 Windows 上,我都使用了最新的 gcc 13。对于 Windows,我使用了 winlibs 的版本。
你知道为什么会这样吗?
答: 暂无答案
评论
rand(),
而没有人调用 .srand()