我仅使用 tempnam() 来获取目录名称,因此此安全警告不适用于我的情况。我怎样才能禁用它?我找不到任何开关来做到这一点。
Jack
问问题
10146 次
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 错误页面- 我不久前提交了这个。
- 关于这个问题的 GNU ld 错误页面- 于 2010 年提交!
- GNU ld 错误页面建议了解决问题的方法- 我不久前提交了这个。
请注意,该问题并非特定于 GCC - 任何链接器都应该发出此警告,其触发器在编译库中是“硬编码”的。
于 2020-10-02T17:48:15.063 回答
-5
您可以使用 GCC 的-Wno-deprecated-declarations
选项来禁用所有类似这样的警告。不过,我建议您正确处理警告,并听取编译器的建议。
于 2009-02-12T13:42:56.927 回答