自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MyDriverC

广博,创新

  • 博客(83)
  • 收藏
  • 关注

转载 C语言中以十六进制输出字符型变量会出现'ffffff"的问题

http://guhanjie.iteye.com/blog/1765585最近在做一个C的嵌入式项目,发现在C语言中用printf()函数打印字符型变量时,如果想采用"%x"的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下:C代码  char buf[10] = {0};  buf[0] = 0xbf;  printf("%2x\

2016-03-31 15:25:23 2744

转载 luajit笔记---编译成静态库以及FFI绑定宿主程序函数

local ffi = require("ffi")ffi.cdef[[ typedef struct { uint8_t id; char * name; } stuInfo;]]--新建一个结构体local n = 1local stu = ffi.new("stuInfo[?]", n)--新建变长的结构体变量for i=0, n-1 do

2016-03-31 09:23:19 1281

转载 Lua FFI 实战

http://www.360doc.com/content/14/0113/15/9200790_344867499.shtml由来FFI库,是LuaJIT中最重要的一个扩展库。它允许从纯Lua代码调用外部C函数,使用C数据结构。有了它,就不用再像Lua标准math库一样,编写Lua扩展库。把开发者从开发Lua扩展C库(语言/功能绑定库)的繁重工作中释放出来。FFI简介FFI库

2016-03-31 09:09:51 744

转载 如何将c结构数据传给lua

http://blog.csdn.net/hopingwhite/article/details/6681826最近需要使用lua来让策划那些配置一些逻辑,于是调研了一下lua是如何实现这部分工作的,最终发现一个通常的策划是利用lightuserdata和metatable来协调解决这个问题。也即将数据指针给lua,另外告诉它一个如何操作这些数据的metamet

2016-03-29 17:34:41 915

转载 Lua中的loadfile、dofile、require详解

1.loadfile——只编译,不运行loadfile故名思议,它只会加载文件,编译代码,不会运行文件里的代码。比如,我们有一个hellofile.lua文件:复制代码代码如下:print(“hello”);function hehe()print(“hello”);end这个文件里有一句代码,和一个函数。试试用loadfile加载这个文

2016-03-29 15:22:43 715

转载 Lua: lua_call/lua_pcall/lua_cpcall的用法

函数原型:1)void lua_call (lua_State *L, int nargs, int nresults);L是执行环境,可以理解为当前栈,nargs参数个数,nresults返回值个数。2)void lua_pcall(lua_State *L,int nargs, int nresults,int nerrfunc);lua_pcall和该函数区别是多一个

2016-03-29 14:58:59 3643

转载 c++向Lua中传递复杂的结构该如何做?

http://www.zhihu.com/question/32195614用userdata, 参考 Programming in Lua : 28.1还可以考虑直接ffi,参考FFI Tutorial如果在应用中这种需求比较频繁,你需要使用一个lua binder。Binder的作用就是将宿主语言的数据包装成Lua可访问的对象(table或userdat

2016-03-29 14:23:31 2853

转载 lua gc

Lua 提供了一个自动的内存管理。这就是说你不需要关心创建新对象的分配内存操作,也不需要在这些对象不再需要时的主动释放内存。 Lua 通过运行一个垃圾收集器来自动管理内存,以此一遍又一遍的回收死掉的对象(这是指 Lua 中不再访问的到的对象)占用的内存。 Lua 中所有对象都被自动管理,包括: table, userdata、 函数、线程、和字符串。Lua 实现了一个增量标记清除的收集器。

2016-03-29 14:21:18 534

转载 深入理解关于Lua与C数据通信的栈

http://www.tuicool.com/articles/QFzIreLua与C交互的栈是一个重要的概念。文章首先解释了为什么要引入Lua栈,然后对访问栈常用的API进行了总结,并使用这些API的注意事项,最后从Lua源代码来看栈的实现原理。Lua栈概述      我们知道Lua是一种嵌入式语言,所有的Lua程序最后都需要通过Lua解释器(即Lua

2016-03-29 14:13:18 933

转载 C语言技巧:怎样把数组作为参数传递给函数?

在把数组作为参数传递给函数时,有值传递(by value)和地址传递(by reference)两种方式。在值传递方式中,在说明和定义函数时,要在数组参数的尾部加上一对方括号([]),调用函数时只需将数组的地址(即数组名)传递给函数。例如,在下例中数组x[]是通过值传递方式传递给byval_func()函数的:# include voidbyval_func(int[]);      

2016-03-29 13:29:57 7095

转载 多进程和多线程的优缺点

在Linux下编程多用多进程编程少用多线程编程。         IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linu

2016-03-28 18:52:08 941

转载 lua手工编译遇到的问题

第一步是 make第二步   make linux这里出错了,提示如下luaconf.h:275:31: error: readline/readline.h: No such file or directoryluaconf.h:276:30: error: readline/history.h: No such file or directorylua.c: In func

2016-03-28 16:28:10 915

转载 纯源码包安装 lua 的时候遇到的错误和解决办法

http://storysky.blog.51cto.com/628458/345982/昨天晚上磕磕绊绊的把nginx 装好了(所有需要的包都是源码包),今天开始部署数据库,因为需要lua 语言环境支持,所以需要先安装lua,结果这东西安装也不是那么顺利,第一步是 make第二步   make linux这里出错了,提示如下luaconf.h:275:31: erro

2016-03-28 15:21:39 1141

转载 Python、Lua和Ruby——脚本大P.K.

http://blog.csdn.net/gzlaiyonghao/article/details/1674808译者按:Python、lua和ruby在C/C++是日渐式微的情况下,在java/.net的围歼中努力抗争的三个当红小生。在Tom Gutschmidt的著作《Game Programmng with Python, Lua and Ruby》一书中,介绍了三种语言在游戏中

2016-03-28 11:37:53 366

转载 Lua 的速度为什么比 Python 快

首先lua的虚拟机非常简单,指令设计也很精简.最关键的是, lua 是基于寄存器的虚拟机实现,而python还有很多其他脚本语言是基于堆栈的,基于寄存器的虚拟机字节码更简单,更高效,因为register based vm的字节码,一般同时包含了指令/操作数/操作目标等.对比简单的加法操作:stack based 生成的字节码大概是这样(仅仅是模拟,不代表实际)PUS

2016-03-28 11:35:57 5407

转载 ubuntu中怎样防止终端被意外关闭?

对于还未运行的:1.让进程忽略 HUP 信号命令:nohup(在命令前加上 nohup,如 nohup ping ...),标准输出,标准错误默认被重定向到 nohup.out 文件。可以使用 " ... > a.txt 2> &1 " 来更改默认的标准输出,标准错误的输出位置。2.让进程不属于当前终端的子进程(即运行在新的session中)命令:setsid(

2016-03-28 11:13:20 1365

转载 sqlite文件大小问题,删除不干净,彻底清空数据库

问题描述:sqlite中删除了大量数据后,数据库文件的大小没有变。update更新数据库,文件大小翻倍。 原因:当你从Sqlite删除数据后,未使用的磁盘空间被添加到一个内在的”空闲列表”中用于存储你下次插入的数据。磁盘空间并没有丢失。但是也不向操作系统返回磁盘空间。 解决:sqlite操作全部完成后,执行 VACUUM 命令。

2016-03-25 16:24:54 5509

转载 sqlite之我见--C/C++ API接口示例 --回调 事务

http://blog.csdn.net/wzzfeitian/article/details/7993686在之前的两篇博文中,分别介绍了SQLITE的基础知识和操作,C/C++ 的一些常用APIsqlite之我见--简单介绍与基本操作sqlite之我见--C/C++ API接口介绍 本文中,我会给大家用几个小程序示例SQLITE C/C++

2016-03-25 15:03:46 2786 1

转载 基于C API的SQLite3基本数据库操作

http://www.cnblogs.com/hnrainll/archive/2011/09/08/2170492.htmlSQLite是一款开源嵌入式文件型数据库,这个主要是和其他一些C/S架构的关系型数据库比较而来的,比如MySQL等。说他是嵌入式,因为SQLite的所有功能全部包装在一个dll中,我们只需要使用其中的导出接口就可以操作SQLite数据库,这样

2016-03-25 15:02:00 484

转载 SQLite3 API编程手册

http://www.cnblogs.com/hnrainll/archive/2011/09/08/2170506.html

2016-03-25 14:54:14 917

转载 SQLite学习手册(数据库和事务)

一、Attach数据库:     ATTACH DATABASE语句添加另外一个数据库文件到当前的连接中,如果文件名为":memory:",我们可以将其视为内存数据库,内存数据库无法持久化到磁盘文件上。如果操作Attached数据库中的表,则需要在表名前加数据库名,如dbname.table_name。最后需要说明的是,如果一个事务包含多个Attached数据库操作,那么该事务仍然是原子的

2016-03-25 13:50:50 324

转载 linux下安装sqlite

http://blog.csdn.net/liuyang1990i/article/details/7596646在linux下安装sqlite源码下载sqlite-amalgamation-3.7.3.tar.gz进入下载目录,解压文件tar -zxvf sqlite-amalgamation-3.7.3.tar.gz.解压后生成sqlite-3.7.

2016-03-25 10:29:17 410

转载 ./configure,make,make install的作用

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

2016-03-25 10:25:50 299

转载 Python中SQLite支持数据库远程访问吗?

qlite应该是只是一个本地文件,API放在各个语言的开发包里了,它本身不具备C/S的网络功能。见官方文档:“ If you have many client programs accessing a common database over a network, you should consider using a client/server database engine ins

2016-03-24 17:00:21 5135

转载 使用事务操作SQLite数据批量插入

在开发过程中,有时候需要批量写入数据的情况,发现传统的插入数据模式非常慢,几千条数据的写入或者更新可能需要好几分钟时间就是采用事务提交,默认SQLite的数据库插入操作,如果没有采用事务的话,它每次写入提交,就会触发一次事务操作,而这样几千条的数据,就会触发几千个事务的操作,这就是时间耗费的根源。上面的批量插入,经过前后的测试,2千条数据批量插入SQLite数据库,需要大概3~4分钟左

2016-03-24 16:42:31 3150

转载 Keepalived+MySQL主主互备模式实现高可用

http://www.iyunv.com/thread-38848-1-1.html实验架构图: 修改DB1配置文件增加以下几项:[mysqld]log-bin=mysql-binrelay-log=mysql-relay-binserver-id=1replicate-wild-ignore-table=mysql.%replicate-wil

2016-03-23 16:44:35 1995

转载 MySQL Replication, 主从和双主配置

http://www.cnblogs.com/weafer/archive/2011/09/20/2182566.htmlMySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。   下图是MySQL官

2016-03-23 16:37:44 501

转载 mysql 主主互备

http://www.cnblogs.com/kristain/articles/4142970.html双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。 这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。 

2016-03-23 16:34:09 327

转载 SQLite的架构(The Architecture Of SQLite)

篇文档描述SQLite库的基本架构。对那些想要理解和修改SQLite的人很有帮助。下面这张图表展示了SQLite的组件和它们之间的关系。  接口(Interface)SQLite的很多对外接口的实现函数在main.c,legacy.c和vdbeapi.c。还以一些散落在其他文件中,sqlite3_get_table() 函数实现在table.c,sqli

2016-03-23 10:43:35 465

转载 python共享内存

共享内存(Shared Memory)是最简单的进程间通信方式,它允许多个进程访问相同的内存,一个进程改变其中的数据后,其他的进程都可以看到数据的变化。共享内存是进程间最快速的通信方式:`进程共享同一块内存空间。`访问共享内存和访问私有内存一样快。`不需要系统调用和内核入口。`不造成不必要的内存复制。内核不对共享内存的访问进行同步,因此程序员必须自己提供同步。

2016-03-22 17:26:10 3704

转载 SQLite性能和限制 多进程

性能和限制SQLite是一个很快的数据库,但"快"这个词本身是一个主观的和模糊不清的词。坦白地讲,对于有些事情,SQLite比其他数据库做得快,也有些事情比不上其他数据库。利用SQLite提供的配置参数,SQLite是足够快速和高效的。与大多数数据库一样,SQLite使用B-tree做索引,使用B+-tree处理表。因此,在对单表进行查询时,平均而言,SQLite与其他数据库一样快(至少不

2016-03-22 16:14:01 18604 1

转载 SQLite 相关

SQLite性能高完全是因为它不具备很多数据库必要的特性,比如完整事务性,大数据集(顺便吐槽,我们之前评测的时候测试过10亿,时间有一些比这个表里的SQLite快,也不知道这个评测怎么做的),连跨进程并发都没有。所以说白了,性能的优势完全来自于缺少的功能。当然,它也有很大的适用范围。查了一下,sqlite是支持并默认启用事务,但写入是粗粒度的全表排它锁,会锁定其他连接的写操作直

2016-03-22 16:03:53 450

转载 详细了解SQLITE 优缺点 性能测试

http://blog.sina.com.cn/s/blog_8cfbb9920100zetj.html什么是SQLITE: SQLite是一个开源免费的数据库,一般用于嵌入系统或者小规模的应用软件开发中,你可以像使用Access一样使用它,你可以免费用于任何应用,包括商业应用,另外,它还支持各种平台和开发工具,这点是某些数据库(比如Access、DBISAM)。

2016-03-22 15:55:01 2186

转载 频繁创建临时表

http://imysql.cn/2009_02_17_mysql_optimize_to_many_temp_table引言:某客户新上线一个项目,利用存储过程处理用户登录相关事务。在存储过程中,需要对用户数据进行处理,于是他们采用临时表(temporary table)来做这个动作,先创建一个临时表,然后插入数据,处理;由于是采用连接池方式,担心临时表被复用,于是在最后删除该临时表。该客户

2016-03-22 15:13:05 1015

转载 Mysql临时表

当你创建临时表的时候,你可以使用temporary关键字。如:  create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null)‘或     CREATE TEMPORARY TABLE IF NOT EXISTS sp_output_tmp ENGINE = MEMORYSELEC

2016-03-22 15:05:51 260

转载 C语言宏高级用法 [总结]

http://www.cnblogs.com/Anker/p/3418792.html1、前言    今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜。如是上网google一下,顺便总结一下,方便以后学习和运用。C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简单的字符串替换,根据是否带参数分为无参和带参。宏的简单应用很容易掌握,今天主要总结一下宏的

2016-03-22 14:08:33 443

转载 #与##在宏定义中的--宏展开

http://www.cnblogs.com/pang123hui/archive/2011/02/25/2309915.html#与##在宏定义中的--宏展开#include #define f(a,b) a##b#define g(a) #a#define h(a) g(a)int main(){  printf("%s/n", h(f(1,2)))

2016-03-22 13:47:02 368

转载 MySQL 中 GROUP BY 基本实现原理

http://blog.chinaunix.net/uid-20761674-id-75096.htmlMySQL 在进行 GROUP BY 操作的时候要想利用所有,必须满足 GROUP BY 的字段必须同时存放于同一个索引中,且该索引是一个有序索引(如 Hash 索引就不能满足要求)。而且,并不只是如此,是否能够利用索引来实现 GROUP BY 还与使用的聚合函数也有关系。前面两

2016-03-16 17:43:54 1349

转载 实例详解 DB2 排序监控和调优

http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1112caimj/index.html正常情况下,DB2 排序发生在内存中,这块内存叫做排序堆,即 SORTHEAP。当需要排序的数据超出 SORTHEAP 大小限制时,就会发生排序溢出。溢出的数据会写到临时表中,这会产生更多的 I/O,因此对性能会有较大

2016-03-16 17:40:23 1562

转载 apache基金会开源项目简介

http://f.dataguru.cn/thread-232412-1-1.html项目名称描述HTTP Server互联网上首屈一指的HTTP服务器AbderaApache  Abdera项目的目标是建立一个功能完备,高效能的IETF Atom联合格式(RFC4287)和Atom

2016-03-16 17:03:00 4965

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除