Во время обучения CI регулярно сталкиваются с ресурсами, которые рекомендуют никогда не использовать некоторые функции (например, gets()
), потому что их сложно или невозможно безопасно использовать.
Если стандартная библиотека C содержит ряд этих "никогда не используемых" функций, может показаться необходимым изучить их список, что делает их небезопасными и что вместо этого делать.
До сих пор я изучил те функции, которые:
- Не может быть предотвращено от перезаписи памяти
- Не гарантируется нулевое завершение строки
- Поддерживать внутреннее состояние между вызовами
обычно считаются небезопасными в использовании. Есть ли список функций, которые демонстрируют такое поведение? Существуют ли другие типы функций, которые невозможно безопасно использовать?