2014-11-20 3 views
1

У меня есть remsh к рабочему применению Erlang:DUMP Эрланга в файловой системе

1> application:which_applications(). 
[{ssl,"Erlang/OTP SSL application","5.3.6"}, 
{public_key,"Public key infrastructure","0.22.1"}, 
{crypto,"CRYPTO","3.4.1"}, 
{asn1,"The Erlang ASN1 compiler version 3.0.2","3.0.2"}, 
{stdlib,"ERTS CXC 138 10","2.2"}, 
{kernel,"ERTS CXC 138 10","3.0.3"}] 

Мой вопрос: Как я могу сохранить файлы луч на другое место в файловой системе?

ответ

2

Для каждого модуля, который вы хотите сохранить, вызовите code:get_object_code/1, чтобы получить объектный код модуля как двоичный код, затем используйте file:write_file/2 для сохранения этого двоичного файла в файловой системе.

+0

Кстати, будет ли это решение работать с модулями, которые были созданы во время выполнения и не имеют изображения в файловой системе? –

+0

Не знаете, какие модули вы имеете в виду, но даже сгенерированные модули должны быть скомпилированы, так что да, это должно сработать. Для модулей, которые реализованы как NIF, вы, очевидно, не собираетесь получать собственный объектный код, а скорее обертка Erlang вокруг него. –

+0

Я имею в виду ситуацию, когда код скомпилирован из абстрактной формы, но не загружен из файла. Как и https://github.com/eproxus/meck/blob/master/src/meck_code.erl#L69. Согласно реализации code_server https://github.com/erlang/otp/blob/maint/lib/kernel/src/code_server.erl#L380, эта функция возвращает код для модуля, который имеет изображение файловой системы. –

Смежные вопросы