Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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
       static 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 - integral value referring to a error code

Return value
	  Pointer  to a	null-terminated	byte string corresponding to the errno
       error 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 lo-
       cale facet that
	  controls the contents	of these messages.

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

Example
       // Run this code

	#include <iostream>
	#include <cmath>
	#include <cerrno>
	#include <cstring>
	#include <clocale>

	int main()
	{
	    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 Definitions-
       bereiches

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)

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strerror&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help