Вы можете сделать что-то вроде:
std::cerr << strerror(errno) << std::endl;
Это по-прежнему вызывает strerror
, так что вы на самом деле просто заменяете одну функцию Си другой. OTOH, он позволяет писать через потоки, вместо того, чтобы смешивать вывод C и C ++, что, как правило, хорошо. По крайней мере, AFAIK, C ++ ничего не добавляет в библиотеку, чтобы заменить strerror
(кроме генерации std::string
, я не уверен, что она все равно изменится с strerror
).