码迷,mamicode.com
首页 > 其他好文 > 详细

getarg & iargc

时间:2015-11-16 15:46:19      阅读:1039      评论:0      收藏:0      [点我收藏+]

标签:

     getarg & iargc 大多应用在Linux系统下的两个命令。如果在Window系统下运行,必须以读入的方式输入相关参量,例如

    call GETARG(1,jobname)
    read(*,*) jobname

或者直接在输入程序里用 FileInp=‘MDcu.mpm‘ 把数据文件注明,否则,程序会自动执行以下程序:

    inquire(file=FileInp, exist=ext)
    if (.not. ext) then
       write(msg, ‘("Input file ", A10, " does not exist .")‘) &
                  FileInp
       write(*,*) msg
       stop 1000
    end if

      这就是在Linux系统下能够运行的程序,在Windows下不能运行的根源。

      如果在Windows下已经生成了可执行程序exe。则可以在cmd直接运行,效果和Linux基本一致。

      新浪博客对这两个参数作了详解:http://blog.sina.com.cn/s/blog_67f37e760101k2r7.html

      转载之前对博主ousman表示谢意!

-----------------------------------------------------------------------------------------------

      getarg用法:call getarg(NUMBER,VALUE)其中NUMBER是获取第几个参数,VALUE是相应的值。

      iargc用法:n=iargc(),返回命令行中参数的数量。

      nargs:参数个数,包括命令
      iargc:参数个数,比nargs得到的个数少一个

iargc()
iargc: INTEGER(KIND=1) function.
Intrinsic groups: unix.
Description:
Returns the number of command-line arguments.
This count does not include the specification of the program name itself.

      getarg是用来返回你输入的命令行参数的:call getarg(n,buffer)

      其中n是命令序号, buffer是相应的命令行参数。运行程序本身的命令是0号,跟在它后面的参数是1,2,...号。
      比如,你写这样一个小程序:

character*80 buff
call getarg(0,buff)
write(*,*) buff
call getarg(1, buff)
write(*,*) buff
call getarg(2, buff )
write (*,*) buff
end

      然后编译它,比如把这个可执行程序命名为mypro,然后在Linux系统下键入命令:./mypro   ar1 ar2
      可以看到结果是

./mypro
ar1
ar2

      Windows下(注意:此时必须是可执行程序),则键入:mypro ar1 ar2

      可看到结果是

mypro
ar1
ar2

     可见,用命令行方式,程序执行命令本身是第0个参数,后面跟的第1,2,...,个参量则可以用相应的getarg来获得。

     利用这个getarg,你可以在外部输入命令时控制程序中的一些东西。

 

getarg & iargc

标签:

原文地址:http://www.cnblogs.com/panscience/p/4968827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!