関連情報
ナビゲーション:Fortran 2003入門   前へ   上へ   次へ

8.13 コマンド行へのアクセス

組込み手続きCOMMAND_ARGUMENT_COUNT, GET_COMMAND, and GET_COMMAND_ARGUMENTが追加されました。 これらは従来、F90_UNIX_ENVモジュールからのIARGCGETARG手続きでのみ利用できた機能を重複して提供するものです。

INTEGER FUNCTION command_argument_count()
これはコマンドライン引数の数を返します。 F90_UNIX_ENVモジュール中のIARGCとは異なり、これはコマンド名が取得できない場合でも0を返します。

SUBROUTINE get_command(command,length,status)
  CHARACTER(*),INTENT(OUT),OPTIONAL :: command
  INTEGER,INTENT(OUT),OPTIONAL :: length,status
これはプログラムをコールした際のコマンド行にアクセスします。 コマンド名と空白で仕切られた引数を連結して構成されます。 ユーザが実際に打ち込んだものとは異なる可能性があるのでなるべく使わないでください (代りにGET_COMMAND_ARGUMENTを使用してください)。

COMMANDが存在する場合にはコマンドを取得します (必要に応じて空白でパディング、もしくは切り詰められます)。 LENGTHが存在する場合にはコマンド長を取得します。 STATUSが存在する場合、COMMANDが短くてコマンド全体を収容できないときに−1に、 コマンドが取得できないときに正の数に、それ以外のときに0にセットされます。

SUBROUTINE get_command_argument(number,value,length,status)
  INTEGER,INTENT(IN) :: number
  CHARACTER(*),INTENT(OUT),OPTIONAL :: value
  INTEGER,INTENT(OUT),OPTIONAL :: length,status
これはコマンド行引数のNUMBER番目にアクセスします。 ここで引数ゼロはプログラム名です。 VALUEが存在する場合、引数テキストを取得します(引数の長さとVALUEの長さが異なる場合には、 必要に応じて空白でのパディング、もしくは切詰めが行われます)。 LENGTHが存在する場合、引数の長さを取得します。 STATUSが存在する場合、成功したときにはゼロに、VALUEが短すぎるときには−1に、 エラーが生じたときには正の数にセットされます。

NUMBERがゼロより小さい、もしくは引数の数 (COMMAND_ARGUMENT_COUNTにより返される値)より大きい場合はエラーとなる点に注意してください。

Results matter. Trust NAG.
Privacy Policy | Trademarks