strerror(3) Library Functions Manual strerror(3) strerror, strerrorname_np, strerrordesc_np, strerror_r, strerror_l - (libc -lc) #include char *strerror(int errnum); const char *strerrorname_np(int errnum); const char *strerrordesc_np(int errnum); int strerror_r(size_t size; int errnum, char buf[size], size_t size); /* XSI-compliant */ char *strerror_r(size_t size; int errnum, char buf[size], size_t size); /* GNU-specific */ char *strerror_l(int errnum, locale_t locale); glibc ( feature_test_macros(7)): strerrorname_np(), strerrordesc_np(): _GNU_SOURCE strerror_r(): XSI : (_POSIX_C_SOURCE >= 200112L) && !_GNU_SOURCE GNU. strerror() errnum LC_MESSAGES . (: errnum EINVAL "Invalid argument".) strerror() strerror_l() . perror(3) . strerror() strerrordesc_np() errnum . strerrorname_np() errnum. : EPERM "EPERM". 0 "0". strerror_r() strerror_r() strerror() buf . : XSI POSIX.1-2001 ( glibc 2.3.4 POSIX glibc 2.13) GNU ( glibc 2.0). XSI GNU. ( glibc 2.4) _POSIX_C_SOURCE 200112L XSI strerror_r() . strerror_r() XSI . buf size. strerror_r() GNU . buf ( ) ( buf). buf size ( size errnum ). ('\0'). strerror_l() strerror_l() strerror() errnum locale. strerror_l() locale LC_GLOBAL_LOCALE . strerror() strerror_l() strerror_r() GNU "Unknown error nnn" . strerrorname_np() strerrordesc_np() . errnum NULL. strerror_r() XSI 0 . () ( glibc 2.13) -1 errno ( glibc 2.13). POSIX.1-2001 POSIX.1-2008 strerror() strerror_l() errno errno errno . EINVAL errnum . ERANGE . attributes(7). +----------------------+------------------------------------+----------+ | | | | +----------------------+------------------------------------+----------+ |strerror() | | MT-Safe | +----------------------+------------------------------------+----------+ |strerrorname_np(), | | MT-Safe | |strerrordesc_np() | | | +----------------------+------------------------------------+----------+ |strerror_r(), | | MT-Safe | |strerror_l() | | | +----------------------+------------------------------------+----------+ glibc 2.32 strerror() . strerror() C11, POSIX.1-2008. strerror_r() strerror_l() POSIX.1-2008. strerrorname_np() strerrordesc_np() GNU. POSIX.1-2001 strerror() errno . strerror() NULL . strerror() " nnn" errno EINVAL . C99 POSIX.1-2008 NULL. strerror() POSIX.1-2001 C89. strerror_r() POSIX.1-2001. strerror_l() glibc 2.6. POSIX.1-2008. strerrorname_np() strerrordesc_np() glibc 2.32. strerrorname_np() strerrordesc_np() . err(3) errno(3) error(3) perror(3) strsignal(3) locale(7) signal-safety(7) 3 . . : . 6.18 8 2026 strerror(3)