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.