有關於引數配置模組的設計

2021-10-08 19:10:17 字數 3621 閱讀 3333

配置項和配置項變數相對應

例如:server.conf

pasv_enable=yes

port_enable=yes

listen_port=

5188

max_clients=

2000

max_per_ip=

2accept_timeout=

60connect_timeout=

60idle_session_timeout=

300data_connection_timeout=

900local_umask=

077upload_max_rate=

102400

download_max_rate=

204800

listen_address=

192.168

.1.108

根據配置項的資料型別來定義出對應表

extern

int tunable_pasv_enable;

//是否開啟被動模式

extern

int tunable_port_enable;

//是否開啟主動模式

extern

unsigned

int tunable_listen_port;

//ftp服務埠

extern

unsigned

int tunable_max_clients;

//最大連線數

extern

unsigned

int tunable_max_per_ip;

//每個ip最大連線數

extern

unsigned

int tunable_accept_timeout;

//accept超時時間

extern

unsigned

int tunable_connect_timeout;

//connect超時時間

extern

unsigned

int tunable_idle_session_timeout;

//控制連線超時時間

extern

unsigned

int tunable_data_connection_timeout;

//資料連線超時時間

extern

unsigned

int tunable_local_umask;

//掩碼

extern

unsigned

int tunable_upload_max_rate;

//最大上傳速度

extern

unsigned

int tunable_download_max_rate;

extern

const

char

*tunable_listen_address;

//伺服器ip位址

可以將配置項資訊要跟所對應的變數相對應的關係設計表,通過查詢表中的字串,找到相對應的配置項,就可以將資料儲存到配置項中,如下:

//找到表中相對應的配置名稱,然後將配置資訊儲存到相對應的變數中

//字串 布林 unsigned int 三個**

static

struct parseconf_bool_setting

parseconf_bool_array=

,,};

static

struct parseconf_uint_setting

parseconf_uint_array=

,,,,

,,,,

,,};

static

struct parseconf_str_setting

parseconf_str_array=

,};

通過設計好的表寫處理函式處理配置命令

開啟配置檔案,按行讀取,處理該行

void

parseconf_load_file

(const

char

*path)

//載入配置檔案

char setting_line[

1024]=

;while

(fgets

(setting_line,

sizeof

(setting_line)

,fp)

!=null

)//去除\r\n

str_trim_crlf

(setting_line)

;//將相應的配置資訊儲存到對應的

parseconf_load_setting

(setting_line)

;//再獲取下一行

memset

(setting_line,0,

sizeof

(setting_line));

}fclose

(fp)

;}

處理一行配置資訊,如idle_session_timeout=300這樣的形式,通過key=value,從結構體中name對應找到配置資訊,然後將value放入

void

parseconf_load_setting

(const

char

*setting)

//將配置項載入到相應的變數

//解析出key--value

char key[

128]=;

char value[

128]=;

str_split

(setting,key,value,

'=');if

(strlen

(value)==0

)

· //字串型表

*p_cur_setting =

strdup

(value)

;//就指標指向value,先申請記憶體,然後將value拷貝到裡面

return

;}

p_str_setting++;}

}//bool型別表

elseif(

strcmp

(value,

"no")==

0||strcmp

(value,

"false")||

strcmp

(value,

"0")==0

)else

return

;}

p_bool_setting++;}

}else

return;}

p_uint_setting++;}

}

通過測試確認這樣的做法時正確的.

關於JQUERY傳遞引數的有關問題

關於jquery傳遞引數的問題 大家好,小弟我想問個問題 場景 乙個頁面上面有2個按鈕,兩個按鈕名稱分別是資料庫裡面的資訊名稱,我希望通過點選這兩個按鈕,可以獲取對應的資料庫資訊在下方的div層中顯示,目前已經可以將該按鈕的值給到jquery中,操作如下 對應的標籤資訊 for 迴圈 紅色標註的就是...

有關記憶體的常用配置引數

來指定這個比列。server端jvm最好將 xms和 xmx設為相同值,避免每次垃圾 完成後jvm重新分配記憶體,也可以減少垃圾 次數 開發測試機jvm可以保留預設值。例如 xms4g xx minheapfreeration 來指定這個比列。最佳設值應該視物理記憶體大小及計算機內其他記憶體開銷而定...

關於日誌模組的設計

目錄 1 使用技術以及外部框架 12 詳細描述 12.1 概況.12.1.1 記錄的內容 12.1.2 日誌記錄的位置及相應的內容 22.1.3 日誌的型別 22.1.4 日誌功能的配置 32.1.5 配置節類的用法 112.2 資料庫日誌 122.3 檔案日誌 132.3.1 記錄方式 132.3...