linux 中解析命令行参数 (getopt_long用法)
我们在linux下面的程序开发,很多时候都会遇到命令行处理,命令行参数处理这样一种控制台程序,它能够很明了的给用户程序出程序的使用方法,也能够使我们的程序开发的流程变得更加明了。下面我们就一起来讨论一下,我们平时如何处理这种命令的输入参数,其实这个就跟readline的处理差不多,我们如果掌握了这种固有的模式,那你以后每个程序有这方面的需求都可以直接套用了,大大提高了我们的开发效率。
一.模式框架讲解
本想完整的写一篇文章,但发现一是man手册讲解太详细了,还有很详细的实例,再就是根据man翻译过来的哥们文章太多,故这部分内容我也就直接转载了一位网友的部分翻译,本部分内容转载自:http://blog.csdn.net/ast_224/archive/2009/02/04/3861625.aspx
getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下:
#include <getopt.h>
int getopt_long(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
int getopt_long_only(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
说明:函数中的argc和argv通常直接从main()到两个参数传递而来。optsting是选项参数组成的字符串,如
果该字符串里任一字母后有冒号,那么这个选项就要求有参数。下一个参数是指向数组的指针,这个数组是
option结构数组,option结构称为长选项表,其声明如下:
struct option {
const char *name;
int has_arg;
int *flag;
int val;
};
结构中的元素解释如下:
const char *name:选项名,前面没有短横线。譬如"help"、"verbose"之类。
int has_arg:描述长选项是否有选项参数,如果有,是哪种类型的参数,其值见下表:
符号常量 &n
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
比如要把/etc/apache/bin目录添加到PATH中
1.#PATH=$PATH:/etc/apache/bin
使用这种方法,每当登出PATH就会恢复
2.#vi /etc/profile
在适当位置添加PATH=$PATH:/etc/apache/bin
这种方法最好,除非你强制手动修改PATH的值,否则将不会被改变
3.#vi ~/.bash_profile
修改PATH行,把/etc/apach ......
线程处于分离状态后,当线程退出后,则有操作系统来负责系统的回收。
创建分离状态线程的方法有:
1、在线程函数中调用, pthread_detach(pthread_self());
2、线程属性的设置函数
摘自:Unix 环境高级编程
int makethread(void *(*fn),void *arg)
{
int err;
&n ......
先把中断处理流程给出来
1.进入中断处理程序--->2.保存关键上下文---->3.开中断(sti指令)--->4.进入中断处理程序的handler--->5.关中断(cli指令)---->6.写EOI寄存器(表示中断处理完成)---->7.开中断。
硬中断:
对应于上图的1、2、3步骤,在这几个步骤中,所有中断是被屏蔽的,如果在这个时候睡 ......