Condividi tramite


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.

char *strerror(    int errnum  ); char *_strerror(    const char *strErrMsg  ); wchar_t * _wcserror(    int errnum  ); wchar_t * __wcserror(    const wchar_t *strErrMsg  );

Parametri

  • errnum
    Numero errore.

  • strErrMsg
    Messaggio fornito dall'utente.

Valore restituito

Tutte queste funzioni restituiscono un puntatore alla stringa del messaggio di errore. Le chiamate successive possono sovrascrivere la stringa.

Note

La funzione strerror mappa errnum su una stringa di messaggio di errore e restituisce un puntatore alla stringa. Né strerror né _strerror visualizzano effettivamente il messaggio: a tale scopo, è necessario chiamare una funzione di output come fprintf:

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

Se strErrMsg viene passato come NULL, _strerror, restituisce un puntatore a una stringa contenente il messaggio di errore di sistema per l'ultima chiamata della libreria che ha generato un errore. La stringa del messaggio di errore termina con il carattere di nuova riga ("\n"). Se strErrMsg non è uguale a NULL, _strerror restituisce un puntatore a una stringa che contiene, nell'ordine, il messaggio stringa, i due punti, uno spazio, il messaggio di errore del sistema per l'ultima chiamata della libreria che ha generato un errore e il carattere di nuova riga. La lunghezza massima consentita del messaggio stringa è pari a 94 caratteri.

Il numero di errore effettivo per _strerror viene archiviato nella variabile errno. Per risultati accurati, chiamare _strerror immediatamente dopo la restituzione di un errore da parte della routine di libreria. In caso contrario, le chiamate successive a strerror o _strerror possono sovrascrivere il valore errno.

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

_strerror, _wcserror e __wcserror fanno parte della definizione ANSI ma si tratta di estensioni Microsoft e se ne sconsiglia l'uso laddove si voglia ottenere codice portabile. Per la compatibilità ANSI, usare invece strerror.

Per ottenere le stringhe di errore, si consiglia l'uso di strerror o _wcserror e di non usare le macro deprecate _sys_errlist e _sys_nerr e le funzioni interne deprecate __sys_errlist e __sys_nerr.

Mapping di routine di testo generico

Routine TCHAR.H

_UNICODE e _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcserror

strerror

strerror

_wcserror

Requisiti

Routine

Intestazione obbligatoria

strerror

<string.h>

_strerror

<string.h>

_wcserror, __wcserror

<string.h>

Per altre informazioni sulla compatibilità, vedere Compatibilità.

Esempio

Vedere l'esempio relativo a perror.

Equivalente .NET Framework

System::Exception::Message

Vedere anche

Riferimenti

Modifica di stringhe (CRT)

clearerr

ferror

perror, _wperror