環境

コマンドラインを ARM アーキテクチャベースの環境から main() の引数にマップする方法は実装によって異なります。汎用 ARM C ライブラリでは以下がサポートされています。

Show/hidemain()

main() に渡される引数は、ホワイトスペースが二重引用符で囲まれている場合を除き、ホワイトスペースで区切られた、コマンドラインのワード(I/O 送命令は含まれません)となります。

Note

  • ホワイトスペース文字とは、isspace() の結果が真となる任意の文字です。

  • 二重引用符または二重引用符内のバックスラッシュ文字(\)の前には、バックスラッシュ文字を追加する必要があります。

  • 二重引用符内の I/O 転送命令は認識されません。

Show/hideインタラクティブデバイス

ホスティングされない ARM C ライブラリの実装では、入出力デバイスが意味をなさない場合があります。汎用 ARM C ライブラリでは一対のデバイスがサポートされています。どちらのデバイスも :tt で呼び出され、キーボード入力と VDU 画面出力を処理する目的で使用されます。この汎用的な実装では、以下のようになります。

  • I/O 転送が行われない限り、:tt に接続されたストリームではバッファリングが実行されません。

  • :tt 以外への I/O 転送が行われると、フルファイルバッファリングが使用されます。ただし、stdoutstderr の両方が同じファイルに転送される場合は、ラインバッファリングが使用されます。

Show/hide標準入力ストリーム、標準出力ストリーム、標準エラーストリームの転送

汎用 ARM C ライブラリを使用すると、実行時に、標準入力ストリーム、標準出力ストリーム、および標準エラーストリームを転送できます。例えば、mycopy が、標準入力を標準出力にコピーする、ホストデバッガ上で実行されるプログラムである場合には、以下のコマンドラインを入力することでこのプログラムが実行されます。

mycopy < infile > outfile 2> errfile

ファイルは以下のように転送されます。

stdin

標準入力ストリームは、infile に転送されます。

stdout

標準出力ストリームは、outfile に転送されます。

stderr

標準エラーストリームは、errfile に転送されます。

以下の転送が可能です。

0< filename

stdin filename から読み出します。

< filename

stdin filename から読み出します。

1> filename

stdout filename に書き込みます。

> filename

stdout filename に書き込みます。

2> filename

stderr filename に書き込みます。

2>&1

stderrstdout と同じ場所に書き込まれます。

>& file

stdoutstderr の両方を filename に書き込みます。

>> filename

stdout filename に追加します。

>>& filename

stdoutstderr の両方を filename に追加します。

ターゲット上で stdinstdout、および stderr を転送するには、以下のように定義する必要があります。

#pragma import(_main_redirection)

ファイル転送は、以下のいずれかの場合にのみ実行されます。

  • 起動されているオペレーティングシステムがファイル転送をサポートしている場合

  • プログラムが文字の読み出しと書き込みを実行し、C ライブラリ関数 fputc() および fgetc() がプログラムによって置換されていない場合

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711