24小时热门版块排行榜    

查看: 3501  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

田山东

捐助贵宾 (著名写手)


[交流] 关于getarg 和 iargc

在网上搜了下,给出这字解释:
1.4.15 getarg 和 iargc :获取命令行参数

getarg 和 iargc 访问命令行上的参数(在命令行预处理程序扩展后)。
1.4.15.1 getarg :获取命令行参数
该子例程的调用方式如下所示:
call getarg( k , arg )
k   INTEGER*4   输入  参数索引(0=第一个=命令名称)
arg  character* n  输出  第 k 个参数
n INTEGER*4  arg 的大小 大得足以容纳最长的参数

iargc :获取命令行参数的数量
该函数的调用方式如下所示:
m = iargc()
返回值
INTEGER*4  输出 命令行中参数的数量

示例:使用 iargc 和 getarg 获取参数的数量和每个参数:

demo% cat yarg.f
       character argv*10
       INTEGER*4 i, iargc, n
       n = iargc()
       do 1 i = 1, n
         call getarg( i, argv )
1       write( *, ’( i2, 1x, a )’ ) i, argv
       end
demo% f95 yarg.f
demo% a.out *.f

1 first.f
2 yarg.f

它这里的命令行到底是什么意思呢?一直没搞懂。是程序名?
回复此楼

» 收录本帖的淘帖专辑推荐

fortran相关

» 猜你喜欢

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★
田山东(金币+1): 谢谢参与
jjdg: 金币+1, 感谢参与 2012-11-10 01:07:53
首先,这两个函数都是编译器的扩展,尽可能改成COMMAND_ARGUMENT_COUNT和GET_COMMAND_ARGUMENT

这两个函数的用途是这样的:

如果你的程序名叫 a.exe
执行的时候带一个参数,即
a.exe a.txt

那么 iargc() 返回的值是 1, getarg(1, ifile) 中的 ifile 的返回值便是 "a.txt",后面 open 那句就好理解了……
3楼2012-11-09 23:29:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

田山东

捐助贵宾 (著名写手)


在看别人写的将矩阵转化为稀疏矩阵的代码。直接来了这么一句:
      num=10
      if (iargc() .gt. 0) then
         call getarg(1,ifile)
         iunit = 8
         open(unit=iunit,file=ifile)
      else
         iunit = 5
      endif
真不明白这是干嘛的
2楼2012-11-09 22:13:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见