日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下C程序的可扩展性.

發布時間:2024/10/12 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下C程序的可扩展性. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

What I write, what I lose.

以下為個人關于Linux下C程序的可擴張性的一點想法.

?

可擴展性的應用場景: 1. 有兩個項目都需要使用的一個相同功能的程序, 但是有些要求不一樣. ? ? 比如:升級程序, 一個是2個分區,一個是3個分區. 2. 具體使用的參數可能產生變化. ? ? 比如:服務器地址, 可能在開發階段和正式上線階段不同.

?

如何讓程序具有可擴展性. 我理解到的增加可擴展的方式.

1.代碼級別的修改.

比如針對服務器地址:
……
const char* server_url = “http://testserver:8080/service/xxInterface”;
https_post(server_url, ……);
……
當程序更新服務器地址為正式服務器后, 則在代碼中找到對應的地方, 修改為
……
const char*server_url=“http://domainserver:8080/service/xxIterface”;
https_post(server_url, ……);
……

修改時需要找到所有使用此地址的變量. 全部加以修改.

2.代碼級別的宏定義修改.

……
#define SERVER_URL “http://testserver:8080/service/xxInterface”;
……
https_post(SERVER_URL, ……);
……
當程序更新服務器地址為正式服務器后, 則只需要修改此一處宏定義即可.

這種方法修改比較簡單. 但是缺點是需要手動更新源代碼.

3.腳本控制/修改代碼中的宏定義.

源代碼中的一些宏定義是由腳本統一生成的. 修改此宏定義只需要修改對應的控制腳本或者控制腳本解析的文件. 然后由腳本生成源代碼中的宏定義頭文件.
具體的簡單示例如下:
控制腳本config.sh 負責生成宏定義選項到 common_def.h頭文件中.
common_def.h中定義程序需要使用到的宏定義選項.
具體實現的.c源代碼include 頭文件common_def.h.
修改宏定義則需修改config.sh或者控制腳本解析的文件 .執行腳本生成新的common_def.h頭文件. 然后重新編譯.


4.編譯選項修改.

編譯預處理時的宏定義由編譯選項確定.
具體的簡單示例如下:
代碼中有:
#if DOMAIN_SERVER
const char* server_url = http://domainserver:8080/service/xxIterface;
#else
const char* server_url =“http://testserver:8080/service/xxIterface”;
#endif
DOMAIN_SERVER的定義不在源代碼中設定, 而是在編譯的時候有編譯器選項確定.
gcc –o a.out -DDOMAIN_SERVER=1 src.c //打開#if DOMAIN_SERVER
gcc –o a.out -DDOMAIN_SERVER=0 src.c //關閉#if DOMAIN_SERVER

使用不同的編譯選項重新編譯即可讓程序擴展使用不同的server_url.


5.硬編碼配置文件.

在代碼中增加一個配置信息模塊. 程序需要的可配置信息從此模塊中讀取. 需要程序針對配置擴展修改時, 只需要修改此模塊重新編譯即可.
具體的簡單示例如下:
update_config模塊. update_config.c
……
add_config_item(“server_url”, “http://domainserver:8080/service/xxIterface”);
……
修改時只需要修改對應的update_config模塊中的代碼.
此方法跟統一宏定義的方法類似. 區別在于增加獨立的配置信息模塊.

6.動態配置文件.

程序在需要可配置信息時, 需要讀取獨立的配置文件, 解析此配置文件得到具體的配置信息.
具體的簡單示例如下:
配置文件 update.conf:
server_url=http://domainserver:8080/service/xxIterface
配置信息模塊解析文件update.conf. 得到server_url的值. 封裝提供給其它模塊使用.
配置文件的格式可自行設定. 如設置成鍵值對的文本文件, 或者xml格式都可以.
此方法的優點是不需要重新編譯代碼, 只需修改config配置文件即可使獲得可擴展性.

7.使用環境變量

程序在需要使用可配置信息時, 使用getenv讀取環境變量. 注意需要在程序運行之前設置該環境變量.
具體的簡單示例如下:
run.sh是程序運行腳本. a.out是可執行程序, a.out需要使用server_url.
run.sh中內容
export SERVER_URL=http://domainserver:8080/service/xxIterface
./a.out
a.out實現.
const char* server_url = getenv(“SERVER_URL”);
……
此方法的優點是不需要重新編譯代碼, 只需要在程序運行前修改對應的環境變量定義.

8.使用可執行程序的參數

可執行程序在實際執行時, 可對參數進行解析, 根據不同的參數內容得到不同的可配置信息.
具體的簡單示例如下:
a.out實現的時候先解析參數.
a.out –ddomainserver 解析為使用domainserver
a.out –dtestserver 解析為使用testserver


實際使用過程中, 可根據不同的應用場景, 使程序執行具有可擴展性.

以上, 謝謝......




轉載于:https://www.cnblogs.com/freezee/archive/2012/03/21/2410429.html

總結

以上是生活随笔為你收集整理的Linux下C程序的可扩展性.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91免费网站入口 | 成年人黄色免费网站 | 亚洲一区在线免费 | 99在线视频精品 | 字幕网在线 | 中文在线观看免费高清 | 欧美综合区 | 欧美亚洲韩国 | 欧美日韩黄色网 | 国产xxxx做受视频 | 大色av| 亚洲精品综合在线观看 | 欧美日韩一区二区三区国产精品成人 | 精品国产一区二区三区日日嗨 | 国产精品18久久久久久久久 | 国产精品无码99re | 一区二区三区视频播放 | 国产污网站 | 国产又大又黑又粗 | 国产女主播一区二区三区 | 国产玖玖在线 | 黑人巨大精品欧美一区二区蜜桃 | 日韩中文字幕影院 | 80日本xxxxxxxxx96 亚洲国产精品视频在线 | www日韩欧美 | 亚洲色图图片区 | 久久久777 | 国产网站免费 | 国产亚洲精品久久久久久打不开 | 亚洲欧美日韩精品在线 | 可以免费看的黄色 | 91中文字幕永久在线 | 亚洲九九热 | 黑丝一区| 日本欧美国产一区二区三区 | 动漫av在线免费观看 | 男插女视频在线观看 | 999这里有精品| 台湾三级伦理片 | 亚洲精品综合久久 | 精品一区二区在线视频 | 国产伦精品一区二区三区视频1 | 四虎5151久久欧美毛片 | 一区二区三区免费播放 | 91免费看网站 | 捆绑中国女人hd视频 | jizzjizz8| 成人在线视频一区二区三区 | 亚洲激情av在线 | 可以免费看的av毛片 | 日韩免费av一区 | 狠狠插影院 | 97视频一区二区三区 | 国产日本欧美在线观看 | 久久这里都是精品 | 麻豆视频网址 | 麻豆亚洲av熟女国产一区二 | 午夜偷拍视频 | 欧美视频自拍偷拍 | 日本黄色片免费 | 丰满人妻中伦妇伦精品app | 国产一区二区三区18 | 黄色字幕网 | 国产乱人伦精品一区二区 | 欧美少妇一区二区 | 午夜亚洲成人 | 国内精品999 | 夫の上司に犯波多野结衣853 | 欧美自拍偷拍一区二区 | 免费看国产片在线观看 | 国产精品精品久久久 | 亚洲欧美综合另类自拍 | 四房婷婷| 日韩av动漫 | 窝窝在线视频 | 欧美日韩在线观看一区 | 亚洲成人福利在线 | 男女午夜啪啪 | 丝袜老师让我了一夜网站 | 国产情趣视频 | 奇米在线播放 | 婷婷色基地 | 国产精在线| 日韩黄色免费视频 | 久久久久人妻一区精品色欧美 | 久热热 | 114国产精品久久免费观看 | 牛牛热在线视频 | 饥渴少妇色诱水电工 | 色91视频| 尤物网站在线观看 | 青青青青青青草 | 日本特级毛片 | 免费高清成人 | 中文字幕av一区二区三区人妻少妇 | 亚洲av高清一区二区三区 | 欧美精品亚洲 | 久草成人 | 香港a毛片 |