freecplus框架,Linux平臺下C/C++程序員提高開發效率的利器

一、freecplus框架簡介

freecplus框架是UNIX平臺下C/C++程序開發的業務層基礎框架,由C語言技術網組織開發、維護。其目的是爲C/C++程序員供免費的、開源的程序庫。freecplus框架與C++標準庫結合使用,可以極大的提高程序員的開發效率。

freecplus框架的初衷是爲C/C++程序員提供功能強大、簡單易用的函數和類,把程序員從紛繁複雜的C/C++底層代碼中解放出來,程序員將更關注軟件功能和業務邏輯的實現。

freecplus框架中採用了第三方的開源庫,如ftplib,並對這些庫做了封裝,形成更簡單易用的類庫。

在致力開源的C/C++程序員的努力下,freecplus將不斷的優化、完善和擴展,希望有更多的優秀程序員加入。

二、freecplus開源許可協議

freecplus開源許可協議正文如下:

版權所有 © 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)
作者:碼農有道

如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章