home | help
std::strerror(3)	       C++ Standard Libary		std::strerror(3)

NAME
     std::strerror - std::strerror

Synopsis
	Defined in header <cstring>
	char* strerror( int errnum );

	Returns  a  pointer  to the textual description of the system error code
     errnum,
	identical to the description that would be printed by std::perror().

	errnum is usually acquired from the errno variable, however the function
     accepts any
	value of type int. The contents of the string are locale-specific.

	The returned string must not be modified by  the  program,  but  may  be
     overwritten by a
	subsequent call to the strerror function. strerror is not required to be
	thread-safe. Implementations may be returning different pointers to sta-
     tic read-only
	string	literals  or  may  be  returning the same pointer over and over,
     pointing at a
	static buffer in which strerror places the string.

Parameters
	errnum - integer value referring to an error code

Return value
	Pointer to a null-terminated byte string corresponding to the errno  er-
     ror code
	errnum.

Notes
	POSIX  allows  subsequent  calls  to  strerror to invalidate the pointer
     value returned
	by an earlier call. It also specifies that it is the LC_MESSAGES  locale
     facet that
	controls the contents of these messages.

	POSIX has a thread-safe version called strerror_r defined. Glibc defines
     an
	incompatible version.

Example
     // Run this code

      #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';
	  }
      }

Possible output:
      nan
      log(-1) failed: Numerical argument out of domain
      Or, in German, Das numerische Argument ist ausserhalb des Definitionsbere-
     iches

See also
				  displays  a  character string corresponding of
     the current
	perror			  error to stderr
				  (function)
	E2BIG, EACCES, ..., EXDEV macros  for  standard  POSIX-compatible  error
     conditions
				  (macro constant)
	C documentation for
	strerror

http://cppreference.com 	   2024.06.10			std::strerror(3)

home | help