Namespaces
Variants

std:: strerror

From cppreference.net
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