Я переношу некоторый код в Windows, а компилятор Microsoft (Visual С++ 8) сообщает мне, что strerror()
является небезопасным.
Отбросив фактор досады во всех безопасных строковых материалах от Microsoft, я действительно вижу, что некоторые из устаревших функций опасны. Но я не могу понять, что может быть неправильным с strerror()
. Он принимает код (int
) и возвращает соответствующую строку или пустую строку, если этот код неизвестен.
Где опасность?
Есть ли хорошая альтернатива в C?
Есть ли хорошая альтернатива в С++?
[править]
Имея некоторые хорошие ответы и теперь понимая, что некоторые реализации могут быть настолько сумасшедшими, чтобы на самом деле писать общий общий буфер - небезопасно для повторного размещения в одном потоке, неважно между потоками! - мой вопрос перестает быть "Почему я не могу использовать его, и каковы альтернативы?" на "Есть ли приличные, сжатые альтернативы в C и/или С++?"
Заранее спасибо