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

1、freecplus框架簡介

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

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

freecplus框架中採用了第三方的開源庫,如ftplib,並對這些庫作了封裝,造成更簡單易用的類庫。正則表達式

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

2、freecplus開源許可協議

freecplus開源許可協議正文以下:數據庫

版權全部 (c) 2008-2020,碼農有道,C語言技術網(www.freecplus.net)。安全

特此向任何獲得本軟件副本或相關文檔的人受權:被受權人有權使用、複製、修改、合併、出版、發佈、散佈、再受權和/或販售軟件及軟件的副本,及授予被供應人同等權利,只需服從如下義務:網絡

在軟件和軟件的全部副本中都必須包含以上版權聲明和本許可聲明。框架

若是違返,不管在本軟件的使用上或其餘買賣交易中是否涉及合同,都屬於侵權行爲,咱們保留追究的權利。socket

freecplus開源許可協議正文結束。tcp

3、freecplus框架內容

按照實現的功能,freecplus框架有12個分類。

在這裏插入圖片描述

字符串操做

字符串操做函數和類,包括:

1)安全的字符串複製函數;

2)安全的字符串拼接函數;

3)安全的格式化輸出到字符串的函數;

4)刪除字符串左邊、右邊和兩邊指定字符的函數;

5)字符串大小寫轉換函數;

6)字符串替換函數;

7)從字符串中提取數字的函數;

8)正則表達式函數;

9)字符串拆分的類;

10)統計字符串字數的函數。

二、xml解析

從xml格式的字符串中解析出字段。

三、日期時間

1)日期時間的獲取、轉換和運算;

2)把整數表示的時間轉換爲字符串表示的時間;

3)把字符串表示的時間轉換爲整數表示的時間;

4)時間運算;

5)精確到微秒的計時器。

四、目錄操做

1)建立目錄以及子目錄;

2)遞歸獲取目錄以及子目錄中的文件信息。

五、文件操做

1)打開、讀取、刪除、重命名、複製文件;

2)獲取文件的大小和時間;

3)重置文件的時間;

4)經常使用的文件操做方法類。

六、日誌文件

把C/C++服務程序記錄程序運行和數據處理的日誌記錄到文件中,包括日誌文件的建立、切換、備份等。

七、參數文件

加載C/C++服務程序運行參數。

八、tcp網絡通訊

1)封裝了socket系列函數,實現tcp客戶端,包括報文的接收和發送;

2)封裝了socket系列函數,實現tcp服務端,包括報文的接收和發送;

3)解決了tcp報文粘包的問題;

4)通訊能夠設置超時機制。

九、ftp客戶端

採用ftp協議,實現ftp客戶端的經常使用功能。

十、Oracle數據庫操做

封裝了OCI(Oracle Call Interface)函數庫,實現對Oracle數據庫的操做。

十一、MySQL數據庫操做

封裝了MySQL提供的mysqlclient函數庫,實現對MySQL數據庫的操做。

十二、PostgreSQL數據庫操做

封裝了PostgreSQL提供的pq函數庫,實現對PostgreSQL數據庫的操做。

4、應用舉例

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");
}

運行效果

在這裏插入圖片描述

5、文檔和下載

本文簡單介紹了freecplus框架的基本狀況。

更多文檔請訪問「C語言技術網-\>freecplus框架欄目」。

源代碼下載請訪問「C語言技術網-\>資源下載欄目」。

6、版權聲明

C語言技術網原創文章,轉載請說明文章的來源、做者和原文的連接。

來源:C語言技術網(www.freecplus.net)

做者:碼農有道

若是這篇文章對您有幫助,請點贊支持,或在您的博客中轉發個人文章,謝謝!!!若是文章有錯別字,或者內容有錯誤,或其餘的建議和意見,請您留言指正,很是感謝!!!

相關文章
相關標籤/搜索