> man operating_systems
Центр информации по операционным системам :: Форумы :: Общие :: Разное
 
<< Предыдущая тема | Следующая тема >>
Вызов функции одного процесса из другого
Переход на страницу  [1] 2
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dreamer
Четверг 27.09.2007 00:11

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
Дано: Linux, две программы (обе запущены) В одной программе есть несколько функций, которые нужно вызвать из процесса второй программы с учетом того, что функция должна вернуть некий результат.

Каким образом это можно сделать? Читал, что, вроде бы, можно через RPC. А можно ли как-нибудь по-другому?

Жизнь на Линуксе есть!
Наверх
Roman I Khimov
Четверг 27.09.2007 00:49

ID пользователя #1
Зарегистрирован: Воскресенье 27.06.2004 12:37
Местонахождение: Санкт-Петербург
Сообщений: 601
Ну, D-BUS, например. Или CORBA, хе-хе...


Греби и улыбайся!
Наверх
Сайт
Dreamer
Четверг 27.09.2007 01:06

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
Озадачил... А оправданно ли применение RPC на локальном компьютере (т.е. не в сети)?

Жизнь на Линуксе есть!
Наверх
alman
Четверг 27.09.2007 02:27

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
Dreamer написал(а) ...

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

Каким образом это можно сделать? Читал, что, вроде бы, можно через RPC. А можно ли как-нибудь по-другому?


Если между программами необходимо передавать большие объёмы данных, то имеет смысл использовать shared memory.

man shmget
man shmat
man shmctl

Для синхронизации обмена данными между процессами необходимо использовать семафоры.

man semop
man semctl
man semget

Наверх
Сайт
Dron
Четверг 27.09.2007 08:53


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Можно просто пайпы... именованные...

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

Андрей Валяев
Наверх
Сайт
Hmmm
Четверг 27.09.2007 11:06

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
В подобной ситуации я тоже использовал именованный канал. А вообще есть замечательная книга Уильяма Стивенса - "UNIX взаимодействие процессов". В сети можно взять например отсюда: http://www.utmforum.net/viewtopic.php?p=72&sid=11dc54fc64aa2df47544fa39f7569f58
Наверх
Dreamer
Четверг 27.09.2007 20:38

ID пользователя #9
Зарегистрирован: Воскресенье 04.07.2004 14:01
Сообщений: 235
А если поставить условие, что таких приложений-клиентов должно быть много и крайне желательно, чтобы результаты обработки данных клиента не могли быть получены никакой другой программой, кроме него самого? Тогда каналы вроде как и не подходят...

Жизнь на Линуксе есть!
Наверх
Dron
Пятница 28.09.2007 07:53


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ну это как сделаешь... пусть первый бросит в меня камень тот, кто скажет что это невозможно.

С другой стороны стоит наверное выбрать более удобный способ... шареная память ничем не лучше пайпов...

сокеты?

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

Андрей Валяев
Наверх
Сайт
cmp
Пятница 28.09.2007 09:03
ID пользователя #279
Зарегистрирован: Понедельник 18.04.2005 15:35
Сообщений: 131
для извращенцев: есть в линухе два сигнала зарезервированных под пользовательские нужды, можно через них - первый 0, второй 1, и так по биту передавать
Наверх
Hmmm
Пятница 28.09.2007 21:42

ID пользователя #719
Зарегистрирован: Среда 09.08.2006 11:29
Местонахождение: Москва
Сообщений: 108
2cmp вроде как в любой posix системе. по крайней мере в солярке оне тоже есть, только под другими нумерами.
2Dreamer Тебе нужны сокеты, Dron абсолютно прав (и без вопросов )
Наверх
Переход на страницу  [1] 2  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.