首页 > 编程语言 >C程序起点main函数

C程序起点main函数

时间:2024-07-30 23:29:23浏览次数:10  
标签:argc 函数 int argv char 参数 main 起点

C程序起点main函数

main

c语言中main函数接收两个参数int argc, char* argv[]

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

如上,argc代表参数的数量,argv但是参数字符串指针数组

./program -i 192.168.0.1 -p 2000

此时共有五个参数,

argv[0] --> ./program
argv[1] --> -i
argv[2] --> 192.168.0.1
argv[3] --> -p
argv[4] --> 2000

那么我们怎么去接收这些参数并去识别,那么就要用到getopt.hgetopt()函数了。

int getopt(int argc, char** argv, char* optstring);

第一个参数、第二个参数对应即可,第三个参数接收的是选项如"i:p:"ip代表选项,:代表其后接收一个参数。每个选项例如"-i"这个函数会直接过滤掉-,每次获取时会自动将:后的参数传入到optarg,下次获取会直接跳到下一个选项。此函数的返回值为选项'i'ASCII码值。

实例

int main(int argc,  int char){
	// 判断参数
    if(argc < 5) return -1;    
    int ret = 0;
    char* ip =NULL;
    int port = 0;
    
    // i,p表示两个命令,:表示需要一个参数
    while ((ret = getopt(argc, argv, "i:p:")) != EOF){
        // printf("char is %c\n",  ret);
        switch (ret)
        {
            case 'i':
                // printf("optarg: %s\n", optarg);
                ip = optarg;
                break;
            case 'p':
                // printf("optarg: %s\n", optarg);
                port = atoi(optarg);
                break;
            default:
                break;
        }
    }
    printf("ip: %s, port: %d\n", ip, port);
    return 0;
}

注意

如果有长命令的输入需求的话,可以使用getopt_long函数

int getopt(int argc, char * const argv[], const char *optstring);

标签:argc,函数,int,argv,char,参数,main,起点
From: https://www.cnblogs.com/solicit/p/18333555

相关文章

  • 编写并测试Fibonacci()函数,该函数用循环替代递归计算斐波那契数
    /编写并测试Fibonacci()函数,该函数用循环替代递归计算斐波那契数斐波那契数列(FibonacciSequence)又称黄金分割数列。特别指出:第0项是0,第1项是第一个1。此数列从第2项开始,每一项都等于前两项之和。/include<stdio.h>intFibonacci(intn){//使用循环计算斐波那契数inta=0,b......
  • 窗口函数-详细讲解分析
    目录窗口函数1.窗口函数概述2.窗口函数的语法1.窗口函数语法解释-Function(arg1,...,argn)1.聚合函数2.排序函数3.跨行函数2.窗口函数语法解释-OVER[PARTITIONBY<...>] 3.窗口函数语法解释- [ORDERBY<....>] 4.窗口函数语法解释-[window_expression]窗口函......
  • vue模板中使用临时变量实例,for 循环中使用临时变量继承函数运行结果示例,函数运行结果
    示例代码<!--vue模板中使用临时变量测试示例--><template><divclass="component-name"><!--vue模板中循环定义临时变量实现--><divv-for="iteminitems":key="item.id":data-item="(itemTemp=formatter......
  • Python基础知识笔记——常用函数
    一、range()函数range()函数用于生成一个整数序列。它通常用于循环结构中,例如for循环,以提供循环的迭代次数。range()函数可以有1到3个参数。#range(start,stop,step)range(2,6,2)#生成从2开始,到6结束(不包括6),步长为2的一串数字#参数指定不完全时,默认从0开始,步长......
  • Python 69个 常用 内置函数 之 总结+实例 篇
    1.abs()返回一个数的绝对值print(abs(-5))#输出5print(abs(5))#输出52.dict()创建一个字典my_dict=dict(name="Alice",age=25)print(my_dict)#输出{'name':'Alice','age':25}3.help()用于获取关于对象的帮助信息help(......
  • SQL中的大小写操作函数
    在SQL中,直接处理字符串大小写转换的函数可能因不同的数据库系统(如MySQL、PostgreSQL、SQLServer等)而有所差异。不过,一些基本的、跨数据库的字符串大小写操作函数包括:转换为大写:UPPER(string):将字符串中的所有字符转换为大写。这是SQL中最常用的将字符串转换为大写的函......
  • 数论函数
    数论函数定义:定义域为正整数的函数。积性函数:若数论函数\(f\)满足\(\gcd(x,y)=1\)则\(f(xy)=f(x)f(y)\),\(f\)就是一个积性函数。完全积性函数:若\(f(xy)=f(x)f(y)\),则\(f\)为一个完全积性函数。若积性函数\(f(1)\ne0\),则\(f(1)=1\),容易由定义推得。......
  • 可利用的函数
    0x00AAgroup_concat();将查询结果合并成一个字符串;group_concat(table_name)frominformation_schema.tableswheretable_schema='challenges'eu2ivk78cbgroup_concat(column_name)frominformation_schema.columnswheretable_name='eu2ivk78cb'id,sessi......
  • 深度学习中的一些基础函数
    激活函数概念神经网络中每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传给下一层。在多层神经网络中,上层节点的输入在加权求和后与下层节点的输入之间具有一个函数关系,这个函数称为激活函数。   激活函数的作用常见激活函数  Sigmoid函......
  • 类型错误:+ 不支持的操作数类型:目标函数中的“生成器”和“生成器”
    晕,我发现一个问题我有护士人数21的数据,但是方程中使用的是从护士5号开始的,n=1,2,3,...,N,序列为1,2,3,4是高级护士(T)。如果i=n-T(i=5,6,...,21),则护士长的数据被排除在方差计算之外,即|T|表示集合T的基数。perawat=np.genfromtxt("JumlahPerawat.txt",dtype='str')......