|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 22 Jan 2002 07:57:20 To : vitus@ice.ru Subject : Re: "Hоpмальный" -------------------------------------------------------------------------------- Jan 21 22:47 02, vitus@ice.ru wrote to Zahar Kiselev: ZK>>По моему опыту - линуксовые програмы в большинстве своем ZK>>совершенно не способны ZK>>обрабатывать ситуацию нехватки памяти. Такое впечатление, что ZK>>программисты вообще не проверяют успешность выделения памяти. v> Вопрос в том, кто виноват - язык C, в котором нет нормального v> механизма exceptions или учителя программирования, которые учат v> пользоваться стандартными функциями C как процедурами, не проверяя v> кода v> завершения. Впрочем malloc это все равно функция как не крути. Я бы однозначно свалил вину на программистов v> С другой стороны большинство программ обрабатывают неуспешность malloc v> одним единственным способом - perror("malloc");exit(1); А это как раз v> то, чего тебе, насколько я понимаю, хотелось бы избежать. Совершенно верно. И виноват в этом не столько язык, сколько классическая программистская лень:-) v> Вообще - интересная идея - блокирующий malloc - если памяти нехвата, v> он делает sleep на несколько секунд (или если это блокинующий sbrk, то v> до первого освобождения памяти) и потом повторяет операцию. А NULL v> возвращает только при убийстве сигнала. v> По-моему, такой malloc практически заменяет swap по NFS - программы v> смерть которых ты называешь "система раком встала" будут просто тихо v> ждать пока им память отдадут. Выглядит красиво, но такой реализации malloc я не видел. Хотя наверно ее теоретически можно написать и "подсунуть" в библиотеку вместо стандартной. Zahar --- Msged/LNX 6.1.0 * Origin: undefined location (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/32883c4cfefb.html, оценка из 5, голосов 10
|