任何禁用`tempnam'的方法都是危险的,更好的使用`mkstemp'gcc警告?

时间:2009-02-12 13:37:13

标签: gcc warnings

我只使用tempnam()获取目录名称,因此此安全警告不适用于我的情况。我该如何禁用它?我找不到任何开关来做它。

4 个答案:

答案 0 :(得分:6)

如果您真的只想要目录名,请使用P_tmpdir中定义的字符串常量宏<stdio.h>

答案 1 :(得分:0)

“tempnam()函数返回一个指向有效文件名的字符串的指针,并且当tempnam()选中时,该名称的文件不存在。”

由于检查和稍后创建文件之间的竞争条件而产生警告。

您想只获取目录名称?这应该有什么用呢?

就像陌生人已经说过的那样,您可以使用-Wno-deprecated-declarations禁用此(以及类似的警告)。

答案 2 :(得分:0)

答案是否定的,因为-在许多系统上-实现该功能的GNU C库(glibc)已编译,以便在使用时触发链接器警告。

请参阅:

请注意,问题不是GCC特有的-任何链接程序都应发出此警告,其触发条件是已编译库中的“硬编码”。

答案 3 :(得分:-5)

您可以使用GCC的-Wno-deprecated-declarations选项禁用此类警告。我建议您正确处理警告,并采用编译器的建议。