1. C++下的命令参数解析
- 以前,我对命令行参数的解析是两种方法:直接对argv进行判断,或者使用getopt函数,今天简单复习一下getopt函数,以及记录两种新用法:boost/program_option,以及cmdline
- getopt:
#include <stdio.h>
#include<unistd.h>
int main(int argc, char *argv[])
{
int ch;
opterr = 0;
while((ch = getopt(argc,argv,"a:bcde"))!= -1)
{
switch(ch)
{
case : printf("xxxtest");
case 'a': printf("option a:’%s’\n",optarg); break;
case 'b': printf("option b :b\n"); break;
default: printf("other option :%c\n",ch);
}
printf("optopt +%c\n",optopt);
}
return 0;
}
执行 $./getopt –b
option b:b
执行 $./getopt –c
other option:c
执行 $./getopt –a
other option :?
执行 $./getopt –a12345
option a:’12345’
比较简单,直接贴代码即可明白所有
3.boost/program_option:
基本用法
基本用法
4.cmdline
基本用法
命令行参数解析的用法都比较简单,做一个记录,在以后需要使用的时候或者进行复习的再看
xml,json文件解析
- boost/property_tree/ptree,boost/property_tree/json_parser
- tinyxml
pacp网卡操作
pacp_dispatch,pacp_loop处理数据包
pacp_dispatch==》
int pacp_dispatch(pacp_t *p,int cnt,pacp_handler,u_char* user )
cnt:-1时是在一个缓冲区中处理所有数据 0:处理所有的数据
pacp_handler是一个有三个参数的回调函数,(u_char指针,pacp_pkthdr结构体指针,u_char数据包指针)
网络编程库
- boost/asio:我也还不会用,先把链接贴上
线程池库
这个暂时没有,看了一下网上的实现,没有特别好的,git上没有去查有没有好的开源,反正C++11出来后,线程的操作已经简单很多,再手动实现线程池都是很简单的,生产消费者加上线程的一些唤醒操作,但是推荐还是自己去写一个实现一个,然后不断完善,代码永久保存,这样以后在写新代码时,就可以直接用自己的线程池代码