![]() |
1
5
tmpnam只保证文件当时不存在-但在您自己创建之前,它可能会被创建。为了安全地使用它,您总是需要尝试创建打开的文件(文件名,o_creat_o_excl_o_nofollow)。如果由于eExist或eLop而失败,请返回并尝试新名称。 这对于防止symlink攻击特别重要,在这种攻击中,另一个程序从临时文件名创建symlink到/etc/passwd或其他一些重要文件。 另外,请确保不要将空值传递给tmpnam,因为那时使用的缓冲区对于所有线程都是相同的。 结合这些方法的另一种方法是使用mkstemp()或mkostemp(),这将为您安全地创建文件。 最后,如果不需要文件名,可以使用tmpfile(),它将创建一个临时文件,在关闭时将被删除。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |