freecplus框架,Linux平台下C/C++程序員提高開發效率的利器
- 2020 年 3 月 15 日
- 筆記
目錄
一、freecplus框架簡介
freecplus框架由C語言技術網組織開發、維護。其目的是為C/C++程序員供免費的、開源的程序庫。freecplus框架與C++標準庫結合使用,可以極大的提高程序員的開發效率。
freecplus框架的初衷是為C/C++程序員提供功能強大、簡單易用的函數和類,把程序員從紛繁複雜的C/C++底層代碼中解放出來,程序員將更關注軟件功能和業務邏輯的實現。
freecplus框架中採用了第三方的開源庫,如ftplib,並對這些庫做了封裝,形成更簡單易用的類庫。
在致力開源的C/C++程序員的努力下,freecplus將不斷的優化、完善和擴展,希望有更多的優秀程序員加入。
二、freecplus開源許可協議
freecplus開源許可協議正文如下:
版權所有 (c) 2008-2020,碼農有道,C語言技術網(www.freecplus.net)。
特此向任何得到本軟件副本或相關文檔的人授權:被授權人有權使用、複製、修改、合併、出版、發佈、散布、再授權和/或販售軟件及軟件的副本,及授予被供應人同等權利,只需服從以下義務:
在軟件和軟件的所有副本中都必須包含以上版權聲明和本許可聲明。
如果違返,無論在本軟件的使用上或其他買賣交易中是否涉及合同,都屬於侵權行為,我們保留追究的權利。
freecplus開源許可協議正文結束。
三、freecplus框架內容
按照實現的功能,freecplus框架有12個分類。
字符串操作
字符串操作函數和類,包括:
1)安全的字符串複製函數;
2)安全的字符串拼接函數;
3)安全的格式化輸出到字符串的函數;
4)刪除字符串左邊、右邊和兩邊指定字符的函數;
5)字符串大小寫轉換函數;
6)字符串替換函數;
7)從字符串中提取數字的函數;
8)正則表達式函數;
9)字符串拆分的類;
10)統計字符串字數的函數。
2、xml解析
從xml格式的字符串中解析出字段。
3、日期時間
1)日期時間的獲取、轉換和運算;
2)把整數表示的時間轉換為字符串表示的時間;
3)把字符串表示的時間轉換為整數表示的時間;
4)時間運算;
5)精確到微秒的計時器。
4、目錄操作
1)創建目錄以及子目錄;
2)遞歸獲取目錄以及子目錄中的文件信息。
5、文件操作
1)打開、讀取、刪除、重命名、複製文件;
2)獲取文件的大小和時間;
3)重置文件的時間;
4)常用的文件操作方法類。
6、日誌文件
把C/C++服務程序記錄程序運行和數據處理的日誌記錄到文件中,包括日誌文件的創建、切換、備份等。
7、參數文件
加載C/C++服務程序運行參數。
8、tcp網絡通信
1)封裝了socket系列函數,實現tcp客戶端,包括報文的接收和發送;
2)封裝了socket系列函數,實現tcp服務端,包括報文的接收和發送;
3)解決了tcp報文粘包的問題;
4)通信可以設置超時機制。
9、ftp客戶端
採用ftp協議,實現ftp客戶端的常用功能。
10、Oracle數據庫操作
封裝了OCI(Oracle Call Interface)函數庫,實現對Oracle數據庫的操作。
11、MySQL數據庫操作
封裝了MySQL提供的mysqlclient函數庫,實現對MySQL數據庫的操作。
12、PostgreSQL數據庫操作
封裝了PostgreSQL提供的pq函數庫,實現對PostgreSQL數據庫的操作。
四、應用舉例
C/C++語言操作數據庫是一個技術難點,做過這方面開發程序員深有體會,尤其是Oracle數據庫,Pro*C的效率低下,代碼冗長,OCI功能強大,但是難以駕馭。在freecplus框架中,把Oracle的OCI函數封裝成了connection和sqlstatement兩個類,操作Oracle數據庫如探囊取物。
以下示例(createtable.cpp)是採用freecplus框架創建表的代碼。
/* * 程序名:createtable.cpp,此程序演示freecplus框架操作Oracle數據庫(創建表)。 * 作者:C語言技術網(www.freecplus.net) 日期:20190525 */ #include "_ooci.h" // freecplus框架操作Oracle的頭文件。 int main(int argc,char *argv[]) { connection conn; // 數據庫連接類 // 登錄數據庫,返回值:0-成功,其它-失敗。 // 失敗代碼在conn.m_cda.rc中,失敗描述在conn.m_cda.message中。 if (conn.connecttodb("scott/tiger@snorcl11g_198","Simplified Chinese_China.ZHS16GBK")!=0) { printf("connect database failed.n%sn",conn.m_cda.message); return -1; } sqlstatement stmt(&conn); // 操作SQL語句的對象。 // 準備創建表的SQL語句。 // 超女表girls,超女編號id,超女姓名name,體重weight,報名時間btime,超女說明memo,超女圖片pic。 stmt.prepare(" create table girls(id number(10), name varchar2(30), weight number(8,2), btime date, memo clob, pic blob, primary key (id))"); // prepare方法不需要判斷返回值。 // 執行SQL語句,一定要判斷返回值,0-成功,其它-失敗。 // 失敗代碼在stmt.m_cda.rc中,失敗描述在stmt.m_cda.message中。 if (stmt.execute() != 0) { printf("stmt.execute() failed.n%sn%sn",stmt.m_sql,stmt.m_cda.message); return -1; } printf("create table girls ok.n"); }
運行效果
五、文檔和下載
本文簡單介紹了freecplus框架的基本情況。
更多文檔請訪問「C語言技術網->freecplus框架欄目」。
源代碼下載請訪問「C語言技術網->資源下載欄目」。
六、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!