Документация по LinuxLinuxDoc.Ru 🔍

strerror, strerror_r - возвращают строку, описывающую ошибку

НАЗВАНИЕ
strerror, strerror_r - возвращают строку, описывающую
ошибку

СИНТАКСИС
#include

char *strerror(int errnum);
int strerror_r(int errnum, char *buf, size_t n);

ОПИСАНИЕ
Функция strerror() возвращает строку, описывающую код
ошибки, переданный в аргументе errnum, возможно с учетом
категории LC_MESSAGES текущей локали для выбора
соответсвующего языка. Приложение не должно изменять
строку. Строка может измениться при последующем вызовом
perror() или strerror(). В библиотеке нет функций
изменяющих эту строку.

Функция strerror_r() аналогична strerror(), но безопасна с
точки зрения подпроцессов (threads). Она возвращает строку
в буфере buf, предоставленном пользователем и имеющим
длину n.


ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функция strerror() возвращает соответсвующее описание
ошибки или сообщение о том, что ошибка неизвестна.
Значение errno при удачном вызове не меняется, а при
ошибке устанавливается в ненулевое значение. Функция str-
error_r() возвращает 0 при успешном завершении и -1 при
ошибке, устанавливая при этом errno.


КОДЫ ОШИБОК
EINVAL Значение errnum не является правильным кодом
ошибки.

ERANGE Предоставлено недостаточно места для размещения
строки описания ошибки.


СООТВЕТСТВИЕ СТАНДАРТАМ

SVID 3, POSIX, BSD 4.3, ISO/IEC 9899:1990 (C89).
strerror_r() с указанным выше прототипом соответсвует
SUSv3 и была использована в Digital Unix и HP Unix.
Несовместимая функция с прототипом

char *strerror_r(int errnum, char *buf, size_t n);

является расширением GNU, используемым в glibc (начиная с
2.0), и должна рассматриваться как устаревшая с точки
зрения SUSv3. Версия GNU может использовать буфер
пользователя, но не нуждается в нем. Если она использует
буфер пользователя, то результат может быть обрезан в
случае, когда предоставленный буфер слишком мал.
Результат всегда оканчивается NUL.
Читать новости Linux в Telegram
Linux - strerror, strerror_r - возвращают строку, описывающую ошибку
Мы в соцсетях ✉