程序参数

程序参数

  许多命令行运行的C程序都会有可选(或必须要有)的参数,如 gcc prog.c -o prog,“prog.c”、"-o"、"prog"这些都是参数。
  参数中有些会被称为选项(标志、开关),选项参数(options)往往被用作调整程序的功能,比如 -o 就是gcc的一个选项,它可以指定输出文件的名字(默认的输出文件名为a.out);而另外的一些参数当然就是非选项参数了。
  命令行在LINUX/UNIX中一般都会遵守一些准则,在X/Open规范中可以找到详细具体的内容。下面是一些常见且简单的描述:

  • 单字符选项参数一般要加一个短横杠( - ),也就是减号。如,gcc命令中的 -o
  • 长选项参数一般要加双短横杠( – ),就是两个连续的减号。如, gcc --helpnode --version (很多命令行都会有这两个选项,help用于查看手册、version用于查看版本)
  • 参数之间要用空格隔开。如果一个参数中包含了空白字符,就需要用双引号把整个参数闭合起来。如, Hello World 表示两个参数(一个Hello、一个World);而 “Hello World” 则代表的是一个参数。

*注:并不是所有的命令行都遵守了这个准则

简单的带参数示例

  要编写带参数的C程序就需要给main函数传入两个参数:int argc、char *argv[] .
  前者是一个整型参数,代表着一条命令行中字符串的个数(字符串之间用空格隔开,含有空格的字符串要用双引号闭合,这个和上面说过的一样);后者是一个数组,存放着指向每个字符串的指针。
  以一条命令 $ myecho hello world ! 为例($代表的是命令提示符,这个应该很清楚它不是命令的一部分),如下图所示:
argc-argv的描述
当运行这条命令时,argc就被赋值为4,而argv[]就会存放各个字符串的指针。
需要注意的是:

  • argv[]存放的是指针,而不是字符
  • 虽然myecho是程序文件的名称而非参数,但它确实是命令的一部分,字符串的个数要算上它!所以argc是4而非3

如此一个带参数的C程序大致如下所示:

int main(int argc, char *argv[])
{
   

	//...CODE...
	
	return 0;
}

一个简单的示例:

//FILENAME: myprogram.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
   
    int arg = 0;
    while(arg < argc)
    {
   
        printf("%s\n", argv[arg]);
        arg++;
    }
    printf("argc = %d\n", argc);
    exit(0)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值