Безопасно ли вызывать errno
несколько раз при работе с той же ошибкой. Или безопаснее работать с локальной копией?Следует избегать последовательных вызовов `errno`?
Этот пример иллюстрирует мой вопрос:
// If recvfrom() fails it returns -1 and sets errno to indicate the error.
int res = recvfrom(...);
if (res < 0)
{
// Risky?
printf("Error code: %d. Error message: %s\n", errno, strerror(errno));
// Safer alternative?
int errorNumber = errno;
printf("Error code: %d. Error message: %s\n", errorNumber, strerror(errorNumber));
}
+1 интересный вопрос, который, как оказалось, имеет нетривиальный ответ и возможные практические последствия. –