Я использую tempnam() только для получения имени каталога, поэтому это предупреждение безопасности не распространяется на мой случай. Как я могу отключить его? Я не мог найти никаких переключателей для этого.
Любой способ отключить "tempnam" опасен, лучше использовать предупреждение "mkstemp" gcc?
Ответ 1
Если вам действительно нужно только имя каталога, используйте строковый константный макрос P_tmpdir
, определенный в <stdio.h>
.
Ответ 2
"Функция tempnam() возвращает указатель на строку, которая является допустимым именем файла, и такой файл с этим именем не существует, если tempnam() отмечен."
Предупреждение возникает из-за состояния гонки между проверкой и последующим созданием файла.
Вы хотите получить только имя каталога? Для чего это должно быть полезно?
Как уже говорил незнакомец, вы можете отключить это (и аналогичные предупреждения), используя -Wno-deprecated-declarations.
Ответ 3
Вы можете использовать параметр GCC -Wno-deprecated-declarations
, чтобы отключить все предупреждения, подобные этому. Я предлагаю вам правильно обработать предупреждение и принять предложение о компиляторе.