この erl プログラムは Erlang ランタイムシステムを開始します。正確な詳細は(例えば、erl がスクリプトかプログラムであるかや他のプログラムを呼び出すかどうかは)システム依存です。
恐らく Windows ユーザーは代わりにそれぞれのウィンドウとスクロールバーを持ちコマンドライン編集をサポートして実行される werl プログラムを使用したがります。Windows 上の erl プログラムではシェルでのライン編集を提供しませんし、Windows 95 上ではスクロールしたテキストをスクロールバックする方法は有りません。erl プログラムはパイプライン使うか必要なら標準入力や照準出力をリダイレクトしなければなりません。
erl <引数>
Erlang ランタイムシステムを開始します.
この引数は エミュレータフラグ と フラグ と プレーン引数 に分けられます:
名前通り、エミュレータフラグはエミュレータの挙動をコントロールします。
この init 処理では init flags と呼ばれる幾つかのフラグをそれ自身で解釈します。これはまた残りのフラグを user flags として格納します。これは後から init:get_argument/1 を呼ぶことによって取得することが出来ます。
実際にはエミュレータフラグである "-" フラグが極少数存在する事に注意が必要です、以下の説明を見てください。
例:
% erl +W w -sname arnie +R 9 -s my_init -extra +bertie
(arnie@host)1> init:get_argument(sname).
{ok,[["arnie"]]}
(arnie@host)2> init:get_plain_arguments().
["+bertie"]
この +W w と +R 9 はエミュレータフラグです。-s my_init は初期化フラグで、init により処理されます。-sname arnie はユーザーフラグです、init により保存されます。それはカーネルに読み込まれ、Erlangランタイムシステムを分散させる要因となるでしょう。最後に、-extra(+bertie) 以降のすべてはプレーン引数とみなされます。
% erl -myflag 1
1> init:get_argument(myflag).
{ok,[["1"]]}
2> init:get_plain_arguments().
[]
このユーザーフラグ -myflag 1 はinit プロセスを通過し、保存されます。それはユーザーの定義したフラグで、おそらくはユーザーの定義したアプリケーションによって使用されます。
以下の一覧は初期化フラグ(init flag)に分類されます。特別にに指定しない限り、その他の全てのフラグは init:get_argument/1 を呼び出すことで取得する事が出来るユーザーフラグになります。このリストにユーザーフラグは含まれていないことに注意してください、それらはおそらく付加的なアプリケーション固有のフラグですので、アプリケーションに付随するドキュメントに記載されています。
コマンドライン引数はファイル FileName から読み込まれます。この引数はファイルを読み込み、コマンドラインの結果は '-args_file FileName' フラグを置き換えたものとなります。
このFileName で指定するファイルはプレーンテキストである必要があり、コメントとコマンドライン引数を含むことができます。# の文字から始まり行末までがコメントです。バックスラッシュ(\)は文字の引用に使用されます。erl で許可されている全てのコマンドが受け入れられます(-args_file FileName フラグも)。ただし、-args_file フラグの依存関係が巡回するケースに注意してください。
この-extraフラグは特別に処理されます。そのスコープはファイルの終端で終了します。コマンドライン上の-extraフラグ以降の引数は、-extraセクションへ移動します。すなわち、-extraフラグからコマンドラインの終端までです。
デフォルトは $ROOT/bin/start.boot です。
If this flag is present, global will not maintain a fully connected network of distributed Erlang nodes, and then global name registration cannot be used. See global(3).
% erl -env DISPLAY gin:0
In this example, an Erlang runtime system is started with the DISPLAY environment variable set to gin:0.
The IP addresses must be given in the standard form (four decimal numbers separated by periods, for example "150.236.20.74". Hosts names are not acceptable, but a broadcast address (preferably limited to the local network) is.
Selects an instrumented Erlang runtime system (virtual machine) to run, instead of the ordinary one. When running an instrumented runtime system, some resource usage data can be obtained and analysed using the module instrument. Functionally, it behaves exactly like an ordinary Erlang runtime system.
The name of the node will be Name@Host, where Host is the fully qualified host name of the current host. For short names, use the -sname flag instead.
これは時々、DNS(Domain Name System)が動作していない場合で分散Erlangを実行する為の唯一の方法です。-sname フラグで実行したノードと -name フラグで実行したノードの間で通信を行うことは出来ませんが、ノード名は分散Erlangシステム内でユニークでなければなりません。
-smp enable と -smp は SMPサポートを有効にして Erlangランタイムシステムを起動します。もしランタイムシステムがSMPをサポートしていない場合に、これは失敗するかもしれません。-smp auto は SMPサポートを有効であり一つ以上の論理プロセッサを検出出来た場合に SMPサポートを有効にして Erlangランタイムシステムを起動します。-smp disable は SMPサポートを無効にして Erlangランタイムシステムを起動します。デフォルトでは -smp auto が使用されますが、競合するパラメータ通過した場合には -smp disable が使用されます。現在 -smp auto と競合するパラメーターは -hybrid だけです。
ノート: SMPをサポートしたランタイムシステムは全てのプラットホームでサポートされていません。+Sフラグを参照してください。
erl invokes the code for the Erlang emulator (virtual machine), which supports the following flags:
Suggested stack size, in kilowords, for threads in the async-thread pool. Valid range is 16-8192 kilowords. The default suggested stack size is 16 kilowords, i.e, 64 kilobyte on 32-bit architectures. This small default size has been chosen since the amount of async-threads might be quite large. The default size is enough for drivers delivered with Erlang/OTP, but might not be sufficiently large for other dynamically linked in drivers that use the driver_async() functionality. Note that the value passed is only a suggestion, and it might even be ignored on some platforms.
Sets the number of threads in async thread pool, valid range is 0-1024. Default is 0.
If the c option is used with oldshell on Unix, Ctrl-C will restart the shell process rather than interrupt it.
Note that on Windows, this flag is only applicable for werl, not erl (oldshell). Note also that Ctrl-Break is used instead of Ctrl-C on Windows.
Normally, erlang:now/0 will not immediately reflect sudden changes in the system time, in order to keep timers (including receive-after) working. Instead, the time maintained by erlang:now/0 is slowly adjusted towards the new system time. (Slowly means in one percent adjustments; if the time is off by one minute, the time will be adjusted in 100 minutes.)
When the +c option is given, this slow adjustment will not take place. Instead erlang:now/0 will always reflect the current system time. Note that timers are based on erlang:now/0. If the system time jumps, timers then time out at the wrong time.
Memory allocator specific flags, see erts_alloc(3) for further information.
Sets the maximum number of concurrent processes for this system. Number must be in the range 16..134217727. Default is 32768.
Sets the compatibility mode.
The distribution mechanism is not backwards compatible by default. This flags sets the emulator in compatibility mode with an earlier Erlang/OTP release ReleaseNumber. The release number must be in the range 7..<current release>. This limits the emulator, making it possible for it to communicate with Erlang nodes (as well as C- and Java nodes) running that earlier release.
For example, an R10 node is not automatically compatible with an R9 node, but R10 nodes started with the +R 9 flag can co-exist with R9 nodes in the same distributed Erlang system, they are R9-compatible.
Note: Make sure all nodes (Erlang-, C-, and Java nodes) of a distributed Erlang system is of the same Erlang/OTP release, or from two different Erlang/OTP releases X and Y, where all Y nodes have compatibility mode X.
For example: A distributed Erlang system can consist of R10 nodes, or of R9 nodes and R9-compatible R10 nodes, but not of R9 nodes, R9-compatible R10 nodes and "regular" R10 nodes, as R9 and "regular" R10 nodes are not compatible.
Sets the number of scheduler threads to use when SMP support has been enabled. Valid range is 1-1024. If the Erlang runtime system is able to determine the number of processor cores available, the default value will equal the this value; otherwise, the default value will be one.
This flag will be ignored if the emulator doesn't have SMP support enabled (see the -smp flag).
Enables modified timing and sets the modified timing level. Currently valid range is 0-9. The timing of the runtime system will change. A high level usually means a greater change than a low level. Changing the timing can be very useful for finding timing related bugs.
Currently, modified timing affects the following:
NOTE: Performance will suffer when modified timing is enabled. This flag is only intended for testing and debugging. Also note that return_to and return_from trace messages will be lost when tracing on the spawn BIFs. This flag may be removed or changed at any time without prior notice.
The -extra flag is treated specially. Its scope ends at the end of the environment variable content. Arguments following an -extra flag are moved on the command line into the -extra section, i.e. the end of the command line following after an -extra flag.
The -extra flag is treated specially. Its scope ends at the end of the environment variable content. Arguments following an -extra flag are moved on the command line into the -extra section, i.e. the end of the command line following after an -extra flag.
init(3), erl_prim_loader(3), erl_boot_server(3), code(3), application(3), heart(3), net_kernel(3), auth(3), make(3), epmd(1), erts_alloc(3)