Estoy usando tempnam() solo para obtener el nombre del directorio, por lo que esta advertencia de seguridad no se aplica a mi caso. ¿Cómo puedo desactivarlo? No pude encontrar ningún interruptor para hacerlo.Cualquier forma de deshabilitar `tempnam 'es peligroso, mejor use` mkstemp' gcc warning?
Respuesta
Si realmente solo desea el nombre del directorio, use la macro constante de cadena P_tmpdir
, definida en <stdio.h>
.
Puede utilizar la opción -Wno-deprecated-declarations
de GCC para desactivar todas las advertencias como esta. Sin embargo, sugiero que maneje la advertencia correctamente y tome la sugerencia del compilador.
"La función tempnam() devuelve un puntero a una cadena que es un nombre de archivo válido, y tal que un archivo con este nombre no existía cuando tempnam() marcaba".
La advertencia surge debido a la condición de anticipación entre la comprobación y una creación posterior del archivo.
¿Desea obtener únicamente el nombre del directorio? ¿Para qué debería ser bueno?
Como ya se ha dicho, puede desactivar esto (y advertencias similares) usando -Wno-obsoleto-declaraciones.
Necesito crear un archivo FIFO en un directorio temporal, entonces uso dirname (tempnam ...) – jackhab
- 1. reprimir: el uso de `mktemp' es peligroso
- 2. gcc warning "'se inicializará después de'
- 3. advertencia: se función es peligroso
- 4. ¿Por qué SafeHandle.DangerousGetHandle() es "peligroso"?
- 5. Implementación mkstemp() para win32
- 6. Cualquier forma mejor de TRIM() después de string.Split()?
- 7. ¿Puedo deshabilitar los nombres RTTI de GCC?
- 8. poniendo #warning inside # define's body
- 9. Deshabilitar las advertencias condicionalmente con qmake/gcc?
- 10. Cómo deshabilitar cualquier registro para un hilo
- 11. #warning en Visual Studio
- 12. Portabilidad de la directiva de preprocesador #warning
- 13. ¿Cómo obtener un objeto de archivo de mkstemp()?
- 14. gcc, marca: cómo deshabilitar la advertencia de falla?
- 15. Deshabilitar "if (0)" eliminación en gcc
- 16. ¿Cuál es la mejor manera de eliminar la advertencia de MS Visual C++ Linker: "warning LNK4221"?
- 17. ¿Es posible una directiva multilínea # warning?
- 18. ¿Qué tan peligroso es este script bash?
- 19. ¿Es peligroso activar una NSOperationQueue autorrebelada?
- 20. ¿Por qué Thread.stop() es tan peligroso
- 21. InputConnectionWrapper warning
- 22. UIImagePickerController delegate warning
- 23. Indique a MEF que use cualquier conjunto disponible
- 24. gcc -Wshadow es demasiado estricto?
- 25. ¿Cuál es la mejor/más segura forma de reinstalar Homebrew?
- 26. ¿De dónde viene este backward_warning.h #warning?
- 27. ¿Cómo hacer que gcc use march = native como predeterminado?
- 28. Use intrínsecos SSE2 y ensamblador en línea gcc
- 29. Deshabilitar mensajes de advertencia en GCC a través de archivos de encabezado?
- 30. ¿La mejor forma de distribuir la versión de evaluación de cualquier software?
Para mí, no silencia este tipo de advertencia. – Jack
Para mí no se silenció también, ni siquiera con -w – FabioCosta
Es una advertencia producida en la etapa de vinculación, no compilación, por lo que esta advertencia no tiene efecto. (Darlo a la etapa de enlace tampoco funciona). (En g ++ 4.8.2, al menos) –