freecplus框架,Linux平台下C/C++程序员提高开发效率的利器
一、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%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)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!
freecplus框架,Linux平台下C/C++程序员提高开发效率的利器的更多相关文章
- 程序员提高工作效率的15个技巧【Facebook】
程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...
- Linux平台下Lotus Domino服务器部署案例
Linux平台下Lotus Domino服务器部署案例 几年前我写了篇<RHAS2.1下安装中文LotusDominoR6.5图解>这篇文档被多个大型网站转载,曾帮助过很多公司系统管理员部 ...
- 在linux平台下,设置core dump文件属性(位置,大小,文件名等)
在linux平台下,设置core dump文件生成的方法: 1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. 2) 使用ulimit -c un ...
- Linux平台下:块设备、裸设备、ASMlib、Udev相关关系
对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备):2.块方式访问 Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符.块方式访问.每个磁盘有两个设备文件名: ...
- Linux平台下Ntop流量监测安装,并实现Netflow全过程
Linux平台下Ntop流量监测安装,并实现Netflow全过程 更多原创教学视频详见: http://you.video.sina.com.cn/m/1443650204 本文出自 "李晨 ...
- 利用zabbix监控ogg进程(Linux平台下)
前段时间生产的一个数据库的ogg进程挂了快半个月才被发现,已经起不来了,只有重新初始化再同步.因此很有必要监控下ogg的进程,这里给大家介绍如何使用zabbix监控oracle的ogg的进程.思路就是 ...
- JAVA程序员常用开发工具
1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...
- 程序员网站开发时应该注意的SEO问题
一.链接的统一性 搜索引擎排名最主要的因素就是网站内容和链接,假如网站内部链接不一致,在很大程度上直接影响着网站在搜索引擎中的排名.例如彩票专营店导航栏中的“首页”链接,程序员在开发时可能会有以下几种 ...
- 【转】.NET程序员提高效率的70多个开发工具
原文:.NET程序员提高效率的70多个开发工具 工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为各ASP.NET 开发者介绍一些高效实用的工具,涉及SQL 管理,VS插件 ...
随机推荐
- 图表|Line graphs|Bar graphs|Pie graphs|Scatter graphs|标目|标值|图解|图题|标值|
科研论文写作-图表 图像的特点是直观性高效,可用于描述非线性关系,将文字难以描述的内容表达出来. Line graphs中有自变量和因变量,用于表示变化趋势.为了清晰简洁和易于辨认,所以其中的线条最好 ...
- mysql中造3千条数据(3种方法)
方法一:存储过程 1.存储过程如下: delimiter $$ DROP PROCEDURE IF EXISTS data CREATE PROCEDURE data(in i int) BEGIN ...
- python3下scrapy爬虫(第十一卷:scrapy数据存储进mongodb)
说起python爬虫数据存储就不得不说到mongodb,现在我们来试一下scrapy操作mongodb 首先开启mongodb mongod --dbpath=D:\mongodb\db 开启服务后就 ...
- [LC] 379. Design Phone Directory
Design a Phone Directory which supports the following operations: get: Provide a number which is not ...
- css3 transform 变形属性详解
本文主要介绍了css3 属性transform的相关内容,针对CSS3变形.CSS3转换.CSS3旋转.CSS3缩放.扭曲和矩阵做了详细的讲解.希望对你有所帮助. 这个很简单,就跟border-rad ...
- JDK9新特性-改进进程管理 API
Java 9 这个版本对进程管理方面的改进也是相当大的.在为数不多的几次 Java 项目中,有偶尔用到多线程,但对多进程和进程方面的了解还真是太少. 我想,大部分人应该跟我一样,在编程之外知道有进程的 ...
- [洛谷P3403] 跳楼机
题目传送门 套路题,同余最短路. 先只考虑y.z进行连边,再在mod x的意义下进行计算. 这里的“距离”dis[i]指的是,在所有满足a mod x=i的a里,能到达的最小的a是多少. 显然只要能到 ...
- 从广义线性模型(GLM)理解逻辑回归
1 问题来源 记得一开始学逻辑回归时候也不知道当时怎么想得,很自然就接受了逻辑回归的决策函数--sigmod函数: 与此同时,有些书上直接给出了该函数与将 $y$ 视为类后验概率估计 $p(y=1|x ...
- 安装python3.5
安装python3.5可能使用的依赖 [root@heweiwei heweiwei]# yum install openssl-devel bzip2-devel expat-devel gdbm- ...
- BTCU(高校区块链联盟)-联盟链第6讲作业
// payment project main.go package main import ( "fmt" "strconv" "github.co ...