strerror, _strerror, _wcserror, __wcserror

Ottiene un messaggio di errore dal sistema (strerror, _wcserror) o formatta una stringa di messaggio di errore fornita dall'utente (_strerror, __wcserror). Sono disponibili versioni più sicure di queste funzioni; vedere strerror_s, _strerror_s, _wcserror_s, __wcserror_s.

Sintassi

char * strerror(
   int errnum );

char * _strerror(
   const char *strErrMsg );

wchar_t * _wcserror(
   int errnum );

wchar_t * __wcserror(
   const wchar_t *strErrMsg );

Parametri

errnum
Numero di errore.

strErrMsg
Messaggio fornito dall'utente.

Valore restituito

Tutte queste funzioni restituiscono un puntatore a una stringa di messaggio di errore, in un buffer di archiviazione locale del thread di proprietà del runtime. Le chiamate successive sullo stesso thread possono sovrascrivere questa stringa.

Osservazioni:

La funzione strerror mappa errnum su una stringa di messaggio di errore e restituisce un puntatore alla stringa. Le strerror funzioni e _strerror non stampano effettivamente il messaggio. Per stampare, chiamare una funzione di output, fprintfad esempio :

if (( _access( "datafile", 2 )) == -1 )
   fprintf( stderr, _strerror(NULL) );

Se strErrMsg viene passato come NULL, _strerror restituisce un puntatore a una stringa. Contiene il messaggio di errore di sistema per l'ultima chiamata alla libreria che ha generato un errore. Se si chiama __wcserror, la stringa del messaggio di errore viene terminata dal carattere di nuova riga ('\n'). Le altre funzioni non aggiungono '\n'. Quando strErrMsg non NULLè , la stringa contiene, in ordine: strErrMsg stringa, due punti, uno spazio, il messaggio di errore di sistema. Il messaggio stringa può contenere al massimo 94 caratteri, in caratteri stretti (_strerror) o wide (__wcserror).

Il numero di errore effettivo per _strerror viene archiviato nella variabile errno. Per produrre risultati accurati, chiamare _strerror immediatamente dopo che una routine di libreria restituisce un errore. In caso contrario, le chiamate successive alle routine della libreria potrebbero sovrascrivere il errno valore.

_wcserror e __wcserror sono versioni a caratteri wide di strerror e _strerror rispettivamente.

_strerror, _wcserrore __wcserror sono specifici di Microsoft, non fanno parte della libreria C standard. Non è consigliabile usarli dove si vuole il codice portatile. Per la compatibilità C Standard, usare strerror invece .

Per ottenere stringhe di errore, è consigliabile strerror o _wcserror anziché le macro _sys_errlist deprecate e _sys_nerr le funzioni __sys_errlist interne deprecate e __sys_nerr.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tcserror strerror strerror _wcserror

Requisiti

Ciclo Intestazione obbligatoria
strerror <string.h>
_strerror <string.h>
_wcserror, __wcserror <string.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Vedere l'esempio per perror.

Vedi anche

Manipolazione delle stringhe
clearerr
ferror
perror, _wperror