[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