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出來后,執行緒的操作已經簡單很多,再手動實作執行緒池都是很簡單的,生產消費者加上執行緒的一些喚醒操作,但是推薦還是自己去寫一個實作一個,然后不斷完善,代碼永久保存,這樣以后在寫新代碼時,就可以直接用自己的執行緒池代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265641.html
標籤:其他
