Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 19 фев 2019, 07:10




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 10 июн 2006, 23:40 
Заглянувший

У нас с: 09.06.2006
Сообщения: 7
Можно ли вызвать функцию не известную процессу через указатель на неё
или указатель на функцию является локальным для процесса?
В языке Си можно получить указатель на функцию, можно ли передав этот указатель процессу выполнить эту функцию используя полученный указатель или этот указатель являекся локальным для кода в котором мы получаем адрес функции? (как указатели на локальную память процесса)


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 11 июн 2006, 00:08 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
spacestranger, есть мнение, что нельзя, т.к. адресные порстранства процессов изолированы друг от друга. А что именно вы хотите достигнуть таким образом?

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 12 июн 2006, 21:24 
Заглянувший

У нас с: 09.06.2006
Сообщения: 7
В программе нужно организовать передачу и обработку сообщений между процессами. Во время обработки данных сообщения, процесс мог бы через указатели вызывать функции обработки этого сообщения (указатели на функции обработки находятся среди данных сообщения). Чем то напоминает потход ООП к сообщениям(событиям).
И данные и функции для их обработки в одном обьекте.

Цели:
1. Таким образом хотелось достигнуть возможности добавления типов сообщений(событий) без изменения части программ(процессов) отвечающей за обработку сообщений и их перекомпиляции, просто добавляя к новому типу сообщения указатели на функции его обработки.
2. Посылаемые сообщения должны обрабатыватся несколькими процессами приложения. Сообщения должны удалятся после обработки всеми требуемыми процессами.

Думается что неплохо было бы обрабатывать сообщения используя указатели на функции обработки содержащиеся среди данных сообщения(если такое возможно), а процессы просто передавали бы таким функциям необхобимые данные(например номер процесса который ведёт обработку сообщения). А также защищённо хранить данные управляющие доступом к сообщению и его последующим удалением(после обработки всеми требуемыми процессами) среди данных сообщения.


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 12 июн 2006, 21:56 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 06.02.2002
Сообщения: 9760
Откуда: Менск
spacestranger, смотрите в сторону CORBA если вам хочется "удаленного" вызова функций, это слишком много будет для стандартного unix-api. UNIX IPC - это в основном передача данных + блокировки. Для удаленной обработки данных "чужим" кодом существуют SUN RPC и CORBA - оба варианта достаточно порзрачно работают по сети.

PS: строго говоря ваш вариант небезопасен ИМХО - просто-таки провоцируется переполнение буффера с цель скромить процессу данные таким образом чтобы он передак улправление произвольному коду, возможно сожежащемуся в сами данных... Я не специалист по програамиированию такх вещей на C, но тем не менее так бы делать не стал все равно....

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 13 июн 2006, 09:55 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 25.07.2003
Сообщения: 623
Откуда: Minsk
Llama писал(а):
если вам хочется "удаленного" вызова функций

рекомендую gSOAP очень удобный тул!! 8)

_________________
Never touch the running program!!!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100