freecplus框架是UNIX平臺下C/C++程序開發的業務層基礎框架,由C語言技術網組織開發、維護。其目的是爲C/C++程序員供免費的、開源的程序庫。freecplus框架與C++標準庫結合使用,能夠極大的提升程序員的開發效率。mysql
freecplus框架的初衷是爲C/C++程序員提供功能強大、簡單易用的函數和類,把程序員從紛繁複雜的C/C++底層代碼中解放出來,程序員將更關注軟件功能和業務邏輯的實現。程序員
freecplus框架中採用了第三方的開源庫,如ftplib,並對這些庫作了封裝,造成更簡單易用的類庫。正則表達式
在致力開源的C/C++程序員的努力下,freecplus將不斷的優化、完善和擴展,但願有更多的優秀程序員加入。sql
freecplus開源許可協議正文以下:數據庫
版權全部 (c) 2008-2020,碼農有道,C語言技術網(www.freecplus.net)。安全
特此向任何獲得本軟件副本或相關文檔的人受權:被受權人有權使用、複製、修改、合併、出版、發佈、散佈、再受權和/或販售軟件及軟件的副本,及授予被供應人同等權利,只需服從如下義務:網絡
在軟件和軟件的全部副本中都必須包含以上版權聲明和本許可聲明。框架
若是違返,不管在本軟件的使用上或其餘買賣交易中是否涉及合同,都屬於侵權行爲,咱們保留追究的權利。socket
freecplus開源許可協議正文結束。tcp
按照實現的功能,freecplus框架有12個分類。
字符串操做函數和類,包括:
1)安全的字符串複製函數;
2)安全的字符串拼接函數;
3)安全的格式化輸出到字符串的函數;
4)刪除字符串左邊、右邊和兩邊指定字符的函數;
5)字符串大小寫轉換函數;
6)字符串替換函數;
7)從字符串中提取數字的函數;
8)正則表達式函數;
9)字符串拆分的類;
10)統計字符串字數的函數。
從xml格式的字符串中解析出字段。
1)日期時間的獲取、轉換和運算;
2)把整數表示的時間轉換爲字符串表示的時間;
3)把字符串表示的時間轉換爲整數表示的時間;
4)時間運算;
5)精確到微秒的計時器。
1)建立目錄以及子目錄;
2)遞歸獲取目錄以及子目錄中的文件信息。
1)打開、讀取、刪除、重命名、複製文件;
2)獲取文件的大小和時間;
3)重置文件的時間;
4)經常使用的文件操做方法類。
把C/C++服務程序記錄程序運行和數據處理的日誌記錄到文件中,包括日誌文件的建立、切換、備份等。
加載C/C++服務程序運行參數。
1)封裝了socket系列函數,實現tcp客戶端,包括報文的接收和發送;
2)封裝了socket系列函數,實現tcp服務端,包括報文的接收和發送;
3)解決了tcp報文粘包的問題;
4)通訊能夠設置超時機制。
採用ftp協議,實現ftp客戶端的經常使用功能。
封裝了OCI(Oracle Call Interface)函數庫,實現對Oracle數據庫的操做。
封裝了MySQL提供的mysqlclient函數庫,實現對MySQL數據庫的操做。
封裝了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)
做者:碼農有道
若是這篇文章對您有幫助,請點贊支持,或在您的博客中轉發個人文章,謝謝!!!若是文章有錯別字,或者內容有錯誤,或其餘的建議和意見,請您留言指正,很是感謝!!!