使用说明:测试使用libphenom库的字符串追加函数,效率是strcat的60多倍。所以在进行大量的字符串累加的时候可以考虑使用libphenom库

 依赖库:

ck-0.4..tar.gz
cmake-3.1..tar.gz
libtap-1.12..tar.bz2
libphenom.tar.gz

安装步骤:

tar zxf ck-0.4..tar.gz
./configure
make
make install cp /usr/local/lib/pkgconfig/ck.pc /usr/lib64/pkgconfig/ vim /etc/ld.so.conf
/usr/local/lib/ tar zxf libphenom.tar.gz
./autogen.sh
./configure
make
make check
sudo make install tar zxf cmake-3.1..tar.gz
./configure
make
make install tar jxf libtap-1.12..tar.bz2
mkdir build
cd build
cmake ..
make
make check
make install

头文件:

#include <phenom/sysutil.h>
#include <phenom/string.h>
#include <phenom/stream.h>

编译选项 -lphenom -ltap:

例如:gcc libphenommain.c libphenomtest.c -lphenom -ltap

测试代码:

使用libphenommain.c和libphenomtest.c两个源码文件说明使用方法

libphenommain.c源码:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <phenom/sysutil.h>
#include <phenom/string.h>
#include <phenom/stream.h> ph_memtype_def_t mt_def = { "test", "misc", , };
ph_memtype_t mt_misc = ; int main ()
{
int bufsize = ; //初始化libphenom
ph_library_init();
mt_misc = ph_memtype_register (&mt_def); ph_string_t *text;
text = ph_string_make_empty (mt_misc, ); //追加字符串
test (text);
printf ("text content:%s\n", text->buf);
printf ("text len:%d\n", text->len); //释放
ph_string_delref(text);  return ;
}

libphenomtest.c源码:

#include <stdio.h>
#include <stdlib.h>
#include <phenom/sysutil.h>
#include <phenom/string.h>
#include <phenom/stream.h> extern ph_memtype_def_t mt_def;
extern ph_memtype_t mt_misc; int test (ph_string_t *text)
{
//字符串追加测试
int bufsize = 0;
char *buf = "hahah";

//ph_string_append_cstr(text, buf);
//注意这里使用的是ph_string_append_buf()这个函数,因为ph_string_append_cstr()这个函数
//遇到\0的话就会中断,使有\0的字符串追加不完整
bufsize = strlen(buf);
ph_string_append_buf (text, buf, bufsize);
char *buf2 = "hahah2";
//ph_string_append_cstr(text, buf2);
bufsize = strlen(buf2);
ph_string_append_buf (text, buf2, bufsize);
return 0;
}

说明:如果其他.c文件调用libphenom只要在主函数中初始化就可以,使用时在.c文件中加入

extern ph_memtype_def_t mt_def;
extern ph_memtype_t mt_misc;

编译链接:

gcc libphenommain.c libphenomtest.c -lphenom -ltap

 

linux下libphenom的测试代码的更多相关文章

  1. 怎样在Windows和Linux下写相同的代码

    目前,Linux在国内受到了越来越多的业内人士和用户的青睐.相信在不久的将来,在国内为Linux开发 的应用软件将会有很大的增加(这不,金山正在招兵买马移植WPS呢).由于未来将会是Windows和L ...

  2. RedHat Linux 下安装、测试摄像头

    RedHat Linux 下安装.测试摄像头(全文见附件)     随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...

  3. Linux下18b20温度传感器驱动代码及测试实例

    驱动代码: #include <linux/module.h> #include <linux/fs.h> #include <linux/kernel.h> #i ...

  4. linux 下网站压力测试工具webbench

    一直在用webbench ,这个linux下的网站压力测试工具.整理下. 笔记本装的ubuntu,其他linux系统也差不多. webbench 需要先安装 ctags,一个vim的阅读插件,可以直接 ...

  5. 介绍linux下Source Insight强大代码编辑器sublime_text_3

    背景 1 一. 运行环境 1 二.安装环境配置 1 三.创建快捷方式 1 四.配置全局环境 2 五.操作界面 3 背景 在windows操作系统系统下,文本代码编辑器众多,各路英雄豪杰争相写了许多强大 ...

  6. Linux下的压力测试工具:ab、http_load、webbench、siege

    一.ab 1.1 介绍 ab是apache自带的一款功能强大的测试工具.      安装了apache一般就自带了. 1.2 下载 同apache. 1.3 安装 同apache. 1.4 安装结果 ...

  7. mocha框架下,异步测试代码错误造成的问题----用例超时错误

    今天用抹茶(mocha)做个测试,发现有一个测试项目总是超时: describe("DbFactory functions",function(){ it("query ...

  8. linux下使用indent整理代码(代码格式化)【转】

    转自:https://blog.csdn.net/jiangjingui2011/article/details/7197069 常用的设置: indent -npro -kr -i8 -ts8 -s ...

  9. Linux下简易蜂鸣器驱动代码及测试实例

    驱动代码: #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> ...

随机推荐

  1. SQL时间戳的使用(转)

    一直对时间戳这个概念比较模糊,相信有很多朋友也都会误认为:时间戳是一个时间字段,每次增加数据时,填入当前的时间值.其实这误导了很多朋友. 1.基本概念 时间戳:数据库中自动生成的唯一二进制数字,与时间 ...

  2. 九度OJ 1055:数组逆置 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:7324 解决:3429 题目描述: 输入一个字符串,长度小于等于200,然后将数组逆置输出. 输入: 测试数据有多组,每组输入一个字符串. ...

  3. php xmlrpc使用示例

    xmlrpc 远程过程调用, 使用xml文本方式传输数据. soap协议比xmlrpc复杂并强大. 1.修改 php.ini,开启 xmlrpc 扩展 2.rpc_client.php <?ph ...

  4. 我的Android进阶之旅------>使用ThumbnailUtils类获取视频的缩略图

    今天看了一段代码,是关于获取视频的缩略图的,让我认识了一个ThumbnailUtils类,代码如下. Bitmap bitmap = ThumbnailUtils.createVideoThumbna ...

  5. MongoDB入门学习(三):MongoDB的增删查改

            对于我们这样的菜鸟来说,最重要的不是数据库的管理,也不是数据库的性能,更不是数据库的扩展,而是怎么用好这款数据库,也就是一个数据库提供的最核心的功能,增删查改.         由于M ...

  6. Python的pymysql模块

    PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用MySQLDB. 1.基本语法 # 导入pymysql模块 import pymysql # 连接da ...

  7. nodejs 基础篇整合

    nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...

  8. linux内核中创建线程方法【转】

    本文转载自:https://www.cnblogs.com/Ph-one/p/6077787.html 1.头文件 #include <linux/sched.h> //wake_up_p ...

  9. 2015 年最热门的国人开发开源软件 TOP 50

    开源中国在 2015 年得到了快速的发展,单开源软件收藏量就接近 40000 款,其中不乏优质的国产开源项目.本文从软件的收藏.下载.访问等多角度挑选出了 2015 年最热门的国产开源软件前五十名,让 ...

  10. Java 吃货联盟

    import java.util.Scanner; public class Shao {  private static final int[] dishNames = null;  private ...