LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 614|回复: 2

一个argc的问题

[复制链接]
发表于 2009-4-21 12:25:27 | 显示全部楼层 |阅读模式
请教大虾:

在程序:

  int main(int argc , char **argv)
      {
             glob_t   result ;
             int   i , rc ,  flags  ;
            
                if(argc < 2 )
                    printf("  at  least  one argument must be given \n ") ;
                  return 1 ;

           .................... // 其它程序略
     }

    argc 是argv的中包括二进制命令在内的命令的个数,
请问:
1.  在普通的windows下运行 c 程序 (如turboc下运行),我们没给命令之类的怎么会有命令呢?这是怎么回事?
2.  在这个程序段中argc中的这个个数是怎么确定的?来自哪里?来自终端我输入的吗?怎么计数的?

    非常感谢您的关注和回答,谢谢
发表于 2009-4-21 15:32:28 | 显示全部楼层
1. turboc就是一个命令,如果你在turboc下面运行,命令名应该是 turboc
2. 不带参数,argc=1,带一个参数,argc=2,带两个参数,argc=3,以此类推。
回复 支持 反对

使用道具 举报

发表于 2009-4-27 16:46:35 | 显示全部楼层
当你用turboc编译好一个程序时,如"hello.exe"
那么当你在命令行运行"hello.exe"时,"hello.exe"这个字符串被被当做argv的第一个元素,即argv[0]。
如果使用"hello.exe hello world"来运行时,"hello"和"world"分别成为argv的第二个和第三个元素,即argv[1], argv[2]。然后argc的值只取argv[0]以后的元素个数,即argc=2。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表