使用说明:测试使用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. python 基础 8.4 re的 spilt() findall() finditer() 方法

      #/usr/bin/python #coding=utf-8 #@Time   :2017/11/18 18:24 #@Auther :liuzhenchuan #@File   :re的spli ...

  2. Node.js面试题

    Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听80端口? 什么是事件循环? 哪些工具可以用来保证一致的编程风格? 什么是测试金字塔?对于HTTP API ...

  3. 使用SqlDependency监听MSSQL数据库表变化通知

    SqlDependency提供了这样一种机制,当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...

  4. 【题解】[Ghd]

    [题解]Ghd 一道概率非酋题? 题目很有意思,要我们选出大于\(\frac{n}{2}\)个数字使得他们的最大公约数最大. 那么我们若随便选择一个数字,他在答案的集合里的概率就大于\(0.5\)了. ...

  5. Django框架ORM单表删除表记录_模型层

    此方法依赖的表是之前创建的过的一张表 参考链接:https://www.cnblogs.com/apollo1616/p/9840354.html 1.删除方法就是delete(),它运行时立即删除对 ...

  6. c# &与&& 和 |与||的区别(转载)

    &:按位与,对两个条件都进行判断&&:逻辑与,只要一个条件满足,另外一个条件就不会执行 同理:|:按位或,对两个条件都进行判断||:逻辑或,只要一个条件满足,另外一个条件就不会 ...

  7. 磁卡ID卡IC卡的区别【转】

    本文转载自:https://blog.csdn.net/trap94/article/details/50614451 今天被一个朋友问到ID卡和IC卡有什么区别,还真给问住了.虽然平时经常用到这些卡 ...

  8. HDU3811 Permutation —— 状压DP

    题目链接:https://vjudge.net/problem/HDU-3811 Permutation Time Limit: 6000/3000 MS (Java/Others)    Memor ...

  9. smokeping 报警配置

    摘自: http://blog.csdn.net/achejq/article/details/51556494 smokeping 默认用sendmail 发邮件告警,也可以直接调用外部程序进行报警 ...

  10. Mysql转换表存储引擎的三种方式

    或许会有一些场景需要改变表的存储引擎,例如存储日志的表如果几乎只有insert和少量的select操作,为了追求更好的插入性能有可能会需要把存储引擎更换为MyISAM.但是,本文不建议在同一个数据库中 ...