Преобразовать код ошибки в сообщение об ошибке (с повторным запуском)
#include <string.h>int strerror_r( int errnum,char *strerrbuf,size_t buflen );
libc
Функция strerror_r() сопоставляет код ошибки, содержащийся в errnum, с сообщением об ошибке, которое она сохраняет в буфере strerrbuf.
#include <stdio.h>#include <string.h>#include <errno.h>#include <stdlib.h>#define MSG_LEN 100int main( void ){FILE *fp;char msg_buff[MSG_LEN];int error_num;fp = fopen( "file.name", "r" );if ( fp == NULL ){error_num = strerror_r( errno, msg_buff, MSG_LEN );switch ( error_num ){case 0:printf( "Unable to open file: %s\n", msg_buff );break;case EINVAL:printf( "strerror_r() failed: invalid error code, %d\n", error_num );break;case ERANGE:printf( "strerror_r() failed: buffer too small: %d\n", MSG_LEN );break;}}return (EXIT_SUCCESS);}
POSIX 1003.1 Thread-Safe Functions
errno, perror(), stderr, strerror()
Предыдущий раздел: Описание API системной библиотеки