一、freecplus框架簡介
freecplus框架是UNIX平台下C/C++程序開發的業務層基礎框架,由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%s\n",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%s\n%s\n",stmt.m_sql,stmt.m_cda.message); return -1;
}
printf("create table girls ok.\n");
}
運行效果
五、文檔和下載
本文簡單介紹了freecplus框架的基本情況。
更多文檔請訪問“C語言技術網->freecplus框架”欄目。
源代碼下載請訪問“C語言技術網->資源下載”欄目。
六、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!