Linux环境-程序参数
2017-02-08 17:57
239 查看
int main (int argc, char *argv[])
argc为参数的个数
argv存有输入参数 第一个为程序自身的名字
例:
$ myprog left right 'and center'
argc 为 4
argv 为 { "myprog", "left", "right", "and center" }
通常,通过一个以 ‘-’ 开头的单字符或以“--”开头的多字符命令行参数,改变程序的行为与设置一些选项
例:$ sort -r file -r 参数实现了反向排序
$ sort --help
另外如果需要,不带后续参数的选项可以在一个‘-’后归并到一起
例:
$ ls -lstr 等价于 ls -l -s -t -r
此外,有些程序可能会有不一样的风格,getopt为解决这个问题,提供了一个优雅的方案
#include <unistd.h>
int getopt(int argc, char *const argv[], const char *optstring);
extern char *optarg;
extern int optind //在使用getopt处理参数结束后,optind会被指向所有剩余的非选项参数的起始地址
extern int opterr //如果opterr为非零值,getopt函数将会打印出一条错误信息
extern int optopt; //在遇到无法识别到的参数时,会将此参数保存于此
argc 和 argv 就是mian函数传递进来的参数
optstring 该字符串告诉getopt哪些选项可用,以及它们是否有关联值
例:getopt(argc, argv, "if:lr");
可用参数为i,f,l,r其中 f: 表示f有关联值
调用getopt会返回argv数组中的下一个选项字符,通过循环调用可以依次读取每个选项参数
如果选项参数有关联值,则optarg将指向这个值
如果处理完,返回-1,特殊参数“--”将使getopt停止扫描选项
如果遇到无法识别的选项,getopt返回一个 ‘?’,将保存到optopt中
如果一个选项要求有一个关联值,但是没有按照要求输入关联值,通常会返回一个问号(?),这会与上一点冲突
所以将optstring的第一个字符设置为 ' : ',使改为放回一个 ’ :’
getopt_long函数与getopt的作用相同,但是它接受的是多个字符的参数,以 -- 开头,不具体描述
argc为参数的个数
argv存有输入参数 第一个为程序自身的名字
例:
$ myprog left right 'and center'
argc 为 4
argv 为 { "myprog", "left", "right", "and center" }
通常,通过一个以 ‘-’ 开头的单字符或以“--”开头的多字符命令行参数,改变程序的行为与设置一些选项
例:$ sort -r file -r 参数实现了反向排序
$ sort --help
另外如果需要,不带后续参数的选项可以在一个‘-’后归并到一起
例:
$ ls -lstr 等价于 ls -l -s -t -r
此外,有些程序可能会有不一样的风格,getopt为解决这个问题,提供了一个优雅的方案
#include <unistd.h>
int getopt(int argc, char *const argv[], const char *optstring);
extern char *optarg;
extern int optind //在使用getopt处理参数结束后,optind会被指向所有剩余的非选项参数的起始地址
extern int opterr //如果opterr为非零值,getopt函数将会打印出一条错误信息
extern int optopt; //在遇到无法识别到的参数时,会将此参数保存于此
argc 和 argv 就是mian函数传递进来的参数
optstring 该字符串告诉getopt哪些选项可用,以及它们是否有关联值
例:getopt(argc, argv, "if:lr");
可用参数为i,f,l,r其中 f: 表示f有关联值
调用getopt会返回argv数组中的下一个选项字符,通过循环调用可以依次读取每个选项参数
如果选项参数有关联值,则optarg将指向这个值
如果处理完,返回-1,特殊参数“--”将使getopt停止扫描选项
如果遇到无法识别的选项,getopt返回一个 ‘?’,将保存到optopt中
如果一个选项要求有一个关联值,但是没有按照要求输入关联值,通常会返回一个问号(?),这会与上一点冲突
所以将optstring的第一个字符设置为 ' : ',使改为放回一个 ’ :’
getopt_long函数与getopt的作用相同,但是它接受的是多个字符的参数,以 -- 开头,不具体描述
相关文章推荐
- <linux程序设计> 第四章 [ 程序参数 / 环境变量 / 日期与时间]
- <linux程序设计> 第四章 [ 程序参数 / 环境变量 / 日期与时间]
- LINUX环境(一)--程序参数
- <linux程序设计> 第四章 [ 程序参数 / 环境变量 / 日期与时间]
- Linux环境--向程序传递参数
- Linux下C程序设计(4)----操作环境变量 、程序传递参数getopt getopt_long操作、获取时间
- Linux环境下的程序编译
- imagemagick在程序中调用(linux环境,jsp,php)
- Linux程序应用开发环境和工具经验谈
- Linux/Unix环境下程序开发参考书全集下载
- LINUX下java串口程序环境配置
- Linux环境下使用eclipse开发C++动态链接库程序
- 在linux环境下编译avr单片机程序
- Linux程序应用开发环境和工具经验谈
- 我开发Linux服务程序的工作环境搭配 推荐
- 在linux 上编译生成windows上运行的exe程序,交叉编译环境的配置( 平台:gentoo linux)
- Linux Bash Shell学习(六):设置环境参数
- 安装oracle时linux 内核参数与环境变量
- 在Linux环境下编写控制台模式下的彩色字符程序
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】gdb+gdbserver的方式进行ARM程序调试