dixit le man :
The string pointed to shall not be modified by the application, but may be overwritten by a subsequent call to strerror() [CX] or perror().
Il s'agit d'une fonction de debuggage donc ça ne devrait pas trop poser de problème. Néanmoins, le problème est embêtant tout de même. Et je crois que ce problème est réglé sur certaines implémentation (il me semble que chez netBSD ils ont réglé le problème.)
Chez moi (OpenBSD) j'ai ça :
strerror_r() is a thread safe version of strerror() that places the error
message in the specified buffer strerrbuf.
Le proto de la fonction :
1 2
| int
strerror_r(int errnum, char *strerrbuf, size_t buflen); |
Partager