The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Perl или Python кого изучать?"
Отправлено BigHo, 16-Дек-08 12:26 

>хорошо, но я на самом деле решал немного другую задачу(вне зависимости от
>заданного вопроса) как перенаправить любой вывод, даже самый неожиданный.
>для чего? в контексте разработки CGI приложений. когда ты используешь кучу сторонних
>библиотек. и любая из них, в случае ошибки, может выдать с
>stdout очень неприятную запись, что очень нехорошо с точки зрения безопасности.

Именно для данной задачи лучше не перенаправлять стандартные выводы, а считывать через popen функции: если есть вывод - открывать лог-файл, блокировать его эксклюзивной блокировкой (fcntl), записывать таймстемп, информацию о вызывающем скрипте, и информацию из стандарного вывода и стандартной ошибки. Блокировка должна быть быстрой, поэтому перенаправление в заблокированный файл вряд ли подойдет. Блокировка нужна, чтобы избежать смешивание содержимого буферов двух и более конкурирующих процессов.

>ну а то что вы привели это лишь один из IPC, надо
>заметить самый простой, попробуйте на питоне сделать работу с разделяемой памятью
>и блокировкой.
>к примеру для алгоритма один писатель множестов читателей.
>ваши друзья питонисты скажут вам спасибо.

задача уже сто-один раз реализованна на практике. Популярности это не принесет, т.к. мало кто воспринимает эту проблему как краеугольный камень своей системы. Более того, быстродейственность системы зачастую только уменьшается при частом выделении и уничтожении объектов разделяемой памяти из-за перестройки индекса сегментов.

Может быть "один писатель" и "множество читателей" реализуется более просто - разделяемая память не единственный метод. Почему вы пошли именно этим путем? Или это только пример?

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру