Хабы: C++, Клиентская оптимизация, Алгоритмы, Программирование
Один из моих старых постов о strlcpy недавно вызвал обсуждения на различных форумах. Вероятно, с этим как-то связан выпуск новой версии POSIX. Многие авторы приводили один контраргумент, который я слышал и раньше:
«В общем случае, когда исходная строка умещается в конечный буфер, strlcpy
будет обходить строку только один раз, а strlen + memcpy
будут обходить её дважды».
Под этим аргументом скрывается допущение о том, что однократный обход строки выполняется быстрее. И, честно говоря, это вполне разумное допущение. Но справедливо ли оно? Об этом мы и поговорим в статье.
Читать далее