现在的位置: 首页 > 综合 > 正文

命令行参数简介

2012年11月03日 ⁄ 综合 ⁄ 共 2470字 ⁄ 字号 评论关闭

 这里重点是讲一下命令行参数的处理,对于其中涉及的一些命令和术语不作深入解释,有兴趣的话请自行Google百度。 
     
    main函数的形式 
     
    main函数有三种形式,分别是 
    1   int main(),这是我们最常用的一种,表示main函数不带任何参数; 
    2   int main(int argc, char* argv[]) 或者  int main(int argc, char** argv),这也是常见的一种形式,其中argc是main函数接收的参数个数,argv[0]是正在运行的程序的名称,argv[1],...,argv[argc-1]是接收到的参数,argv[argc]是结束标志NULL; 
    3   int main(int argc, char* argv[], char* envp[])  这种写法比较少见,其中第三个参数是环境变量。 
     
    下面分别用例子来说明一下第二和第三种用法。 
     
    例1 
     
    #include<stdio.h> 
     
    int main(int argc, char* argv[]) 
    { 
       int i; 
        
       for(i=0;i<=argc;++i) 
          printf("argv[%d]=%s\n",i,argv[i]); 
           
       return 0; 
    } 
     
    例2 
     
    #include<stdio.h> 
     
    int main(int argc, char* argv[], char* envp[]) 
    { 
       int i; 
        
       for(i=0;envp[i]!=NULL;++i) 
          printf("envp[%d]: %s\n",i,envp[i]); 
           
       printf("envp[%d]: %s\n",i,envp[i]); 
           
       return 0; 
    } 
     
    下面说一下这两个程序的运行方法。 
     
    Windows环境下: 
     
    最简单的方法就是ctrl+F5了,不过这样出来的结果并不能很好的说明情况,所以在这里我采用命令行的方法。 
     
    题外话:基本命令的使用 
     
        开始菜单  --> 运行 -->  cmd  ,出来命令行窗口。在提示符后输入 
             
            help 
     
        可以得到所有可用命令的简介。如果想详细查询某个命令的用法,输入 
     
            help 命令 
     
        即可。 
     
    首先得找到你的命令行编译器所在的位置。这里以VC2005为例介绍一下最基本的编译链接单个程序。如果想了解更多,可以在MSDN中搜索 How to: Compile a Native C++ Program from the Command Line 
     
    保存代码到一个文件test.c,为了便于讨论,我将文件放在D盘根目录下,也就是D:\test.c。然后选择VC2005的菜单中  tools --> Visual Studio 2005 Command Prompt,出来一个命令行窗口。 
     
    (1)在提示符后输入命令 
    
        d: 
     
        进入D盘。如果源文件在其他目录下可以参考一下cd的用法。 
         
     (2)生成目标文件.obj和可执行文件.exe: 
      
         cl /EHsc test.c 
          
         会在当前目录下生成test.obj和test.exe。 
          
      (3)最后就可以来测试我们的程序例1了: 
       
         test arg1 arg2 arg3 
          
         将会产生以下输出: 
          
         argv[0]=test 
         argv[1]=arg1 
         argv[2]=arg2 
         argv[3]=arg3 
         argv[4]=(null) 
       
       可以用同样的方法处理例2,不过不需要给例2参数。 
        
       Linux环境下: 
        
       首先得确认你装有GCC以及必需的文件(不知道的话出门左转,到Linux版问一下)。然后把文件保存为test.c,这里test.c放在桌面。 
        
       (1)打开终端,进入源文件所在的目录: 
  
       cd ~/Desktop 
       (注:桌面目录有可能是中文,那就是cd ~/桌面) 
        
       (2)生成可执行文件: 
           
          gcc test.c 
           
          将会在桌面生成一个名为a.out的可执行文件。 
           
        (3)测试程序: 
              
             ./a.out arg1 arg2 arg3 
              
             得到相似的输出: 
              
             argv[0]=./a.out 
             argv[1]=arg1 
             argv[2]=arg2 
             argv[3]=arg3 
             argv[4]=(null) 
              
          例2同理。 
-- 

抱歉!评论已关闭.