Что не так с strcmp?
В ответах на вопросЧтение в строке и сравнение ее Cболее чем один человек не рекомендовал использоватьstrcmp()
говоря такие вещи, как
Я также настоятельно советую вам привыкнуть к использованию strncmp () сейчас, чтобы избежать многих проблем в будущем.
или (вПочему мое сравнение строк не удается? )
Убедитесь, что вы используете strncmp, а не strcmp. strcmp крайне небезопасен.
На какие проблемы они ссылаются?
Причинаscanf()
со строковыми спецификаторами а такжеgets()
настоятельно не рекомендуется потому что они почти неизбежно приводят к уязвимости переполнения буфера. Однако невозможно переполнить буферstrcmp()
, право?
«Переполнение буфера или переполнение буфера - это аномалия, при которой программа, записывая данные в буфер, выходит за границы буфера и перезаписывает смежную память».
(-Википедия: переполнение буфера).
Поскольку функция strcmp () никогда не записывает данные ни в один буфер, функция strcmp () не может вызвать переполнение буфера, верно?
По какой причине люди препятствуют использованиюstrcmp()
и рекомендуюstrncmp()
вместо?