Для Вашего второго редактирования проверьте CloudStatus. Это контролирует материал AWS и Google App Engine для отключений электричества и производительности. Amazon также отслеживает их отключения электричества в http://status.aws.amazon.com/ .
Встроенные функции : доступны в последней версии Erlang / OTP, позволяют реализовать любые ваши функции в C.
Драйверы портов : вы можете связать код C с виртуальной машиной Erlang и получить к ней доступ с помощью команды port_command.
Узлы C: с библиотекой ei вы можете имитировать виртуальную машину и общаться со своими виртуальными машинами Erlang, используя формат распространения Erlang .
Самая близкая вещь, которую я знаю для прямого взаимодействия Erlang с C ++, - это EPAPI . Конечно, он полагается на испытанный C erl_interface
, который входит в стандартную комплектацию дистрибутива Erlang.
К отличному ответу Зеда я бы добавил open_port ()
. Он позволяет запускать внешнюю программу и взаимодействовать с ней из Erlang, используя его стандартные входы и выходы. Вы можете использовать его как каналы Unix, указав параметр {line, L}, или есть также параметр {packet, N} с префиксом длины, который я считаю более безопасным и эффективным.
Преимущество этого перед NIF и драйверы порта заключается в том, что ваш код на Erlang полностью изолирован от кода C. Программа на C может разбить свой собственный стек, дважды освободить блоки памяти, войти в бесконечный цикл и т.д. Ничто из этого не останавливает ваш код Erlang. В худшем случае вы закроете порт Erlang и снова откроете его, если что-то пойдет не так.
Любой, кто интересуется аспектом интеграции erlang / C ++, может также захотеть ознакомиться с этой статьей: Переписывание Playdar: C ++ на Erlang, огромная экономия :
Я слышал много анекдотов и утверждений о сколько строк кода сохраняется, когда вы пишете на Erlang вместо [C ++ / другой язык]. Я рад сообщить, что теперь у меня есть личный опыт и некоторые данные, которыми я могу поделиться.
Я изначально написал Playdar на C ++ (с использованием библиотек Boost и Asio), начиная с февраля этого года. Мне посчастливилось работать с опытными разработчиками, которые помогли мне разобраться с C ++. Еще несколько месяцев назад трое из нас регулярно занимались этим, и, несмотря на то, что мы были относительно новичками в C ++, я скажу, что в итоге мы получили хорошо спроектированную и надежную кодовую базу, учитывая все обстоятельства.