А когда людям надоело, что такие функции уходят в память, к которой у функции нет доступа (в т.ч. за счет специально сфабрикованных параметров, приводящих к неприятным последствиям, см. buffer overflow), придумали парные "безопасные" варианты, например
strnlen. Там помимо строки, вторым параметром указывается максимально возможная длина переданной строки (к примеру, для пути к файлу это будет 255 символов). Обычно это длина какого-либо буфера, в который помещается строка. Аналогичные пары есть и для других функций: strcpy/strncpy и т.д.