19

我仅使用 tempnam() 来获取目录名称,因此此安全警告不适用于我的情况。我怎样才能禁用它?我找不到任何开关来做到这一点。

4

4 回答 4

6

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

于 2009-02-12T13:46:54.670 回答
0

“tempnam() 函数返回一个指向一个字符串的指针,该字符串是一个有效的文件名,因此当 tempnam() 检查时,具有此名称的文件不存在。”

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

您只想获取目录名称?那应该有什么好处?

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

于 2009-02-12T13:47:27.600 回答
0

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

看:

请注意,该问题并非特定于 GCC - 任何链接器都应该发出此警告,其触发器在编译库中是“硬编码”的。

于 2020-10-02T17:48:15.063 回答
-5

您可以使用 GCC 的-Wno-deprecated-declarations选项来禁用所有类似这样的警告。不过,我建议您正确处理警告,并听取编译器的建议。

于 2009-02-12T13:42:56.927 回答