1、基本用法
#include <stdio.h>
int main(int argc,char* argv[])
{
//argc:命令行参数个数
//argv:每个命令行参数构成的数组
printf("参数个数:%d\n",argc);
int i;
for(i=0;i<argc;i++)
{
printf("第%d个参数为:%s\n",i,argv[i]);
}
if(strcmp(argv[1],"-s")==0)
{
//system("poweroff");
printf("关机!...\n");
}
else if(strcmp(argv[1],"-r")==0)
{
//system("reboot");
printf("重启!...\n");
}
return 0;
}
2、综合运用,计算器
#include<stdio.h>
float add(int,int);
float sub(int,int);
float div(int,int);
float mut(int,int);
void main(int argc,char* argv[])//argv为指针数组
{
if(argc!=4)
{
printf("参数不够\n");
return;
}
float (*pfun)(int,int)=NULL;//函数指针,动态调用
switch(argv[2][0])//argv[2]为(+‘\0’),只取第一个符号
{
case '+':
{
pfun=add;
}
break;
case '-':
{
pfun=sub;
}
break;
case '*':
pfun=mut;
break;
case '/':
pfun=div;
break;
default:
{
printf("输入有误\n");
return ;
}
}
int num1=0,num2=0;
num1=atoi(argv[1]);
num2=atoi(argv[3]);
if(NULL!=pfun)
{
printf("%d %s %d=%.2f\n",num1,argv[2],num2,pfun(num1,num2));
}
}
//+
float add(int a,int b)
{
return a+b;
}
// -
float sub(int a,int b)
{
return a-b;
}
// /
float div(int a,int b)
{
return (float)a/b;
}
//*
float mut(int a,int b)
{
return a*b;
}
gcc calculator.c -o calc
su root:切到root用户
mv calc /bin :将命令移入库中
calc 1 + 2:直接当命令用