Linux命令行参数作为程序执行的附加项传入参数

    在命令行环境下,执行已编译的程序时,将命令行参数以同一行的附加参数的形式传入到要执行的程序中。C编译器允许main()函数没有参数,或者有两个参数(也有可能更多,是对标准的扩展)。一般形式为“int main(int argv;char* argv[])”,其中第一个参数argc代表命令行中字符串个数(系统以空格作为一个字符串结束的标志);第二个参数*argv[]是一个字符指针组成的数组或者是一个指向字符串的指针数组,命令行的每一个字符串被存储到内存中,并且分配一个指针指向它,这些指针即构成第二个参数。

编写一个程序:

#include<stdio.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
    int i,times,count;
     printf("please input your name and times with %s.\n",argv[0]);
    if(argc < 3 || (times = atoi(argv[2])) < 1)
        printf("Note : %s %s should follow a positive-number\n",argv[0],argv[1]);
    else
    	printf("Implementation success!\n");
        for(i = 0; i < times; i++){
            printf("Hello, %s!\n",argv[1]);
        }
    return 0;
}

编译并执行


    在这个简单的程序中,虽然以数字作为命令行附加参数,但是程序执行时这些参数是以字符串的形式存储的,因此用到了C标准库函数atio(),它是以字符串作为参数,返回相应的整数值,即完成字符串到整数的转换。需要注意的是,字符串若是以整数开头,但整数之后跟有其他字符,atio()函数仍然可以正常返回之前读取的整数值。但是字符串中不是以整数开头(字符串中无整数以及字符串中有整数但不是位于开头位置),函数则返回一个0。

猜你喜欢

转载自blog.csdn.net/qq_34041083/article/details/79990841
今日推荐