获得程序参数

  当一个用C语言编写的Linux程序运行时,它是从main函数开始的。main程序的声明可以如下:

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

  其中argc是程序参数的个数,argv是一个代表参数自身的字符串数组。

  在Linux中,我们一般使用shell命令运行一个可执行文件,例如:

$myprog left right ‘and center‘

  程序myprog将从main函数开始,main带的参数是:

argc:4
argv:{"myprog", "left", "right", "and center" }

  注意,参数的个数包含程序名自身。

  在linux中,我们建议在应用程序中,所有的命令行开头都应以一个短横线开头,气候包含单个字母或数字。如果需要,不带后续参数的选项可以在一个短横线后归并到一起,例如“$ls -lstr”,如果该选项需要参数值,则该选项应独立使用,参数紧跟在该选项后。例如“gcc -o file file.c”

  下面这个程序argc.c对其参数进行检查:

#include <stdio.h>
#include <stdlib.h>

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

        for(arg = 0; arg < argc; arg++) {
                if(argv[arg][0] == ‘-‘)
                        printf("option: %s\n", argv[arg]+1);
                else
                        printf("argument %d: %s\n", arg, argv[arg]);
        }

        exit(0);
}

  测试如下:

[email protected]:/home/anthony# ./args -i -lr ‘hi there‘ -f fred.c
argument 0: ./args
option: i
option: lr
argument 3: hi there
option: f
argument 5: fred.c

  本例中,我们忽略了一种事实,就是-lr选项应该和-l -r一样处理。

时间: 2025-01-02 17:09:58

获得程序参数的相关文章

[C++Boost]程序参数项解析库Program_options使用指南

介绍 程序参数项(program options)是一系列name=value对,program_options 允许程序开发者获得通过命令行(command line)和配置文件(config file)获取这些参数项. 为什么需要这样一个库?为什么比你手工写代码分解命令行参数要好? 使用更容易.定义参数处理的语法简单,库自身很小.像转换参数值到指定的类型和保存参数值到变量的事情都是自动处理. 错误报告更友好.可报告错误的命令行参数.另外这个库能自动生成使用帮助,避免手工更新使用帮助导致的不一

小程序参数二维码自动生成

当小程序审核通过后,那么线上的小程序二维码是如何生成呢?芝麻小程序码提供了程序二维码生成工具. 网址如下 https://weixin.hotapp.cn 芝麻小程序码的特色 (1)支持小程序路径带参数,自定义带参数 (2)小程序码,方形小程序码,以及小程序码的美化 (3)支持创建带场景值的二维码 (4)支持小程序参数二维码的统计,统计扫码人数,扫码次数 原文地址:https://www.cnblogs.com/dodui/p/8443261.html

小程序参数二维码生成

总所周知,小程序无法分享到朋友圈,但是图片可以.只要小程序能生成包含信息与小程序参数二维码,即可达到很好的传播效果. 例:拉勾网. 基础知识准备 appid与appsecret "access_token"; 移步:微信官方文档 小程序二维码生成接口 有3个接口哦:小程序二维码文档 实现步骤 <?php $appid = $_POST["appid"]; // 获取appid $appsecret = $_POST["appsecret"]

java微信小程序参数二维码生成带背景图加字体(无限生成)

需求 :  1,因为项目需求 ,生成数以万计的二维码    2 ,每个二维码带不同的参数  3,二维码有固定背景图 4 , 往生成图片上写入 字体和编号(动态 ) 设计技术 :    1,微信接口token ,nginx 缓存  2,二维码 图片定义 写字 maven <dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactI

小程序参数二维码生成器

微信小程序支持带参数二维码,好推二维码的HotApp小程序统计针对这个功能推出了小程序带参数二维码生成器 输入微信的page 和参数,就可以生成小程序带参数二维码了. www.hotapp.cn

9. iOS 编程之 使用 NSUserDefaults 读取、保存应用程序参数

1.认识一下 NSUserDefaults 平时我们可能要不离开应用程序,直接在应用程序里边设置配置的参数等,这就需要用到 NSUserDefaults,而 NSUserDefaults 是一个单例类,每个应用程序只有一个 NSUserDefaults 对象. 1)获取 NSUserDefaults 实例的方法(Getting the Shared NSUserDefaults Instance) + (NSUserDefaults *)standardUserDefaults:返回默认对象.

Qt 如何处理拖放应用程序参数时,中国

你用 Qt 我们开发的应用程序.用户拖放文件到您的 exe 在.启动应用程序,在这个时候, main() 功能参数可以接收中国.如何正确处理它?非常easy,码如下面: QTextCodec *codec = QTextCodec::codecForLocale(); QString arg = codec->toUnicode(argv[i]); 拖放时传递给应用的參数.是依照系统本地编码格式编码的. QTextCodec 的 codecForLocale() 会返回系统本地的 codec ,

SYS_并发管理系列6_并发程序参数默认值设定(概念)

2014-06-21 Created By BaoXinjian 一. 摘要 在设定并发程式时,需给parameter设定默认值,Concurrent Program中部分多个Parameter的联动的实现也可以通过默认值的实现 1. Constand 2. Segment 3. Profile 4. SQL Statement 5. Current Time and Date 二. 参数具体设定简例 1. Constant 2. Segment 3. Profile 4. SQL Statem

Imu_tk算法流程及数据采集要求和标定程序参数设置

Imu_tk算法流程 由于VIO中,普遍使用的是精度较低的imu,所以其需要一个较为准确的内参数和noise的估计.Noise大家通常使用Allan方差进行估计可以得到较为可信的结果,这里不赘述了.内参数标定比较方便的一个工具就是imu_tk.所以本篇文章主要详细介绍一下imu_tk的算法流程以及使用时的注意事项.下一篇的内容 计划是imu-camera外参数的标定方法. 首先分步介绍算法流程: 1. 读入数据,将时间单位转化为秒 2. 设置初始参数和标定算法的控制参数 3. 开始标定 3.1