Здравствуйте, Gaperton, Вы писали:
G>Есть несколько способов подключить сишный код. G>1) Linked-in driver — код влинковывается в рантайм и ведет себя почти как эрланговский процесс. G>2) C-node — сишный процесс виден как эрланговский узел. G>По-моему, был еще промежуточный вариант, а может и нет, я не помню точно.
Есть еще порты : я могу запустить, к примеру, ping — и получать от него сообщения. Это стандартный юниксвей и работа через пайпы
Есть SNMP, которые достаточно шустро бегают при малых размерах пакетов
Во всех случаях интерфейс делается через посылку сообщений "из С в Эрланг". Все это подробнейшим образом описано в документации. Например, у нас, пользуясь С-шным интеропом (c-node), парни сделали интерфейсы к интерпретаторам языков Verilog и
Все не совсем так ! Драйвер МОЖЕТ посылать сообщения в ерланг, ежели он работает в нити, но в большинстве случаев взаимодействие происходит через прямые вызова функций control в driver_entry — это намного быстрее. Такой прямой вызов может обеспечить миллионы обращений в секунду