Любой способ отключить `tempnam 'опасен, лучше использовать предупреждение gcc` mkstemp'? - PullRequest
15 голосов
/ 12 февраля 2009

Я использую tempnam () только для получения имени каталога, поэтому это предупреждение безопасности не относится к моему случаю. Как я могу отключить это? Я не смог найти переключатели для этого.

Ответы [ 3 ]

6 голосов
/ 12 февраля 2009

Если вы действительно хотите только имя каталога, используйте строковую константу macro P_tmpdir, определенную в <stdio.h>.

0 голосов
/ 12 февраля 2009

"Функция tempnam () возвращает указатель на строку, которая является допустимым именем файла и такая, что файл с таким именем не существовал при проверке tempnam ()."

Предупреждение возникает из-за состязания между проверкой и последующим созданием файла.

Вы хотите получить только имя каталога? Для чего это должно быть хорошо?

Как уже сказал незнакомец, вы можете отключить это (и аналогичные предупреждения), используя -Wno-deprecated-декларации.

0 голосов
/ 12 февраля 2009

Вы можете использовать опцию GCC -Wno-deprecated-declarations, чтобы отключить все подобные предупреждения. Однако я предлагаю вам правильно обработать предупреждение и принять предложение компилятора.

...