[devel] конкатенация строк

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Ноя 29 05:04:20 MSK 2007


On Wed, Nov 28, 2007 at 08:34:23PM +0300, Alexey Tourbin wrote:
> Простейший "стандартный" варинат -- использовать snprintf:
> 
> 	char dest[PATH_MAX];
> 	snprintf(dest, sizeof(dest), "%s%s", s1, s2);
> 
> Тут недостаток в том, что резервируется место на стеке, которое заведомо
> многократно превышает то место, которое скорее всего потребутеся.  Это
> уже плохо.  PATH_MAX это кажется 4096, то есть это размер страницы
> памяти в ядре.  При входе в такую функцию ядро будет "раздвигать" стек,
> если он ещё недостаточно раздвинут, что, в общем, не дёшево.  Это же
> может "затриггить" своп!

Господа.  Я считаю что это анекдот, если конкатенация строк может
активизировать своп.  Тем не менее, это скорее правда, чем ложь.
Я не вру.  Так что вывод простой -- не стоит писать на Си.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20071129/b65e232a/attachment-0002.bin>


Подробная информация о списке рассылки Devel