Всем привет!
Ситуация тривиальная — есть наша функция, скажем
BuildAndInvokeQuery. Эта функция принимает некоторое кол-во параметров и формирует из них строку, которотую отдает другой функции, скажем
InvokeQuery.
Т.е все происходит где-то так:
int BuildAndInvokeQuery( ... )
{
char szQueryParam[ ХХХ ] = {0};
// здесь идет формирование szQueryParam
return InvokeQuery( szQueryParam );
}
Думаю сталкивались не раз. Что касается формирования szQueryParam — тут есть несколько вариантов:
1. Функции типа strcat, strcpy, sprintf и т.д. Т.е. размер буффера не учитывается
2. Функции типа strncat, strncpy, snprintf и т.д. Т.е. размер буффера уже учитывается
Вопрос в том — какой бы вы вариант выбрали ( используете ) и почему.
Внимание!!! Убедительная просьба дотнетчикам не предлагать дотнет. Это тема отдельного обсуждения. Так же убедительная просьба не предлагать использование классов типа CString или string. Все это я знаю, часть этого использую, но интересует именно данная ситуация.