std:: strerror
|
Definido en el encabezado
<cstring>
|
||
|
char
*
strerror
(
int
errnum
)
;
|
||
Devuelve un puntero a la descripción textual del código de error del sistema errnum , idéntica a la descripción que sería impresa por std::perror() .
errnum
generalmente se adquiere de la variable
errno
, sin embargo la función acepta cualquier valor de tipo
int
. El contenido de la cadena es específico de la configuración regional.
La cadena devuelta no debe ser modificada por el programa, pero puede ser sobrescrita por una llamada posterior a la función
strerror
.
strerror
no está obligada a ser segura para hilos. Las implementaciones pueden devolver diferentes punteros a literales de cadena estáticos de solo lectura o pueden devolver el mismo puntero repetidamente, apuntando a un búfer estático en el cual
strerror
coloca la cadena.
Contenidos |
Parámetros
| errnum | - | valor entero que se refiere a un código de error |
Valor de retorno
Puntero a una cadena de bytes terminada en nulo correspondiente al errno código de error errnum .
Notas
POSIX
permite que llamadas posteriores a
strerror
invaliden el valor del puntero devuelto por una llamada anterior. También especifica que es el facet de localización
LC_MESSAGES
el que controla el contenido de estos mensajes.
POSIX tiene una versión segura para hilos llamada
strerror_r
definida. Glibc
define una versión incompatible
.
Ejemplo
#include <cerrno> #include <clocale> #include <cmath> #include <cstring> #include <iostream> int main() { const double not_a_number = std::log(-1.0); std::cout << not_a_number << '\n'; if (errno == EDOM) { std::cout << "log(-1) failed: " << std::strerror(errno) << '\n'; std::setlocale(LC_MESSAGES, "de_DE.utf8"); std::cout << "Or, in German, " << std::strerror(errno) << '\n'; } }
Salida posible:
nan log(-1) failed: Numerical argument out of domain Or, in German, Das numerische Argument ist ausserhalb des Definitionsbereiches
Véase también
|
muestra una cadena de caracteres correspondiente al error actual en
stderr
(función) |
|
|
macros para condiciones de error estándar compatibles con POSIX
(macro constante) |
|
|
Documentación de C
para
strerror
|
|