- 博客(36)
- 资源 (1)
- 收藏
- 关注

转载 一个简单的PHP扩展
PHP扩展开发:第一个扩展发布时间:December 14, 2011 分类:PHP《PHP扩展开发:安装PHP》《POSIX定时器:timer_settime() 》在上一篇文章《PHP扩展开发:安装PHP》我们已经将开发PHP扩展的PHP环境安装成功,那么接下来采用最简单直接的方式创建第一个扩展。我们先假设业务场景,是需要有这么一个扩展,提供一个
2014-09-12 11:29:59
764

转载 为PHP开发C++扩展
摘要有时候,单纯依靠 PHP “本身”是不行的。尽管普通用户很少遇到这种情况,但一些专业性的应用则经常需要将 PHP 的性能发挥到极致(这里的性能是指速度或功能)。由于受到 PHP 语言本身的限制,同时还可能不得不把庞大的库文件包含到每个脚本当中。因此,某些新功能并不是总能被顺利实现,所以我们必须另外寻找一些方法来克服 PHP 的这些缺点。了解到了这一点,我们就到了应该接触一下 PHP 的
2014-09-12 10:56:31
13304
转载 slf4j通过代码配置
给别人提供一个jar包,可以直接打印日志,将日志采集到固定位置,现在大多数的情况都是使用的logback.xml文件,如果还用这个文件可能会造成冲突(当然可以用其他名字),为了避免还得加载文件,直接用Java编写配置,如下:public class SecurityLoggerFactory { private static final String logPath = "/ex...
2018-09-12 19:47:50
1918
转载 SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系
一 简介(1)过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等关于过滤器的一些用法可以参考我写过的这些文章: ...
2018-07-25 17:33:42
250
转载 Linux 下 C 编译gcc与调试gdb工具介绍
前言Linux 的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程. 在本文中你将学到以下知识: 什么是 C GNU C 编译器 用 gdb 来调试GCC应用程序
2014-10-14 19:11:48
1032
转载 单进程多线程并发服务器实现
相比前面的fork方式的多进程服务器,用线程方式更轻量级。最少用fork时,需要将内存映像,描述符等都要从父进程复制到子进程中,会占用大量的资源而多线程方式都在一个进程内,就无需占用这些资源,但同步也是个问题,而且一个线程挂了,可能会影响到进程中的其它线程。 多线程并发的原理就是 当accept 成功连接一个客户端后,把与这个客户端的交互丢到新线程去处理它。 服务端代码
2014-10-14 19:09:57
937
转载 boost::pool与内存池技术
Boost库的pool提供了一个内存池分配器,用于管理在一个独立的、大的分配空间里的动态内存分配。Boost库的pool主要适用于快速分配同样大小的内存块,尤其是反复分配和释放同样大小的内存块的情况。使用pool内存池主要有以下两个优点: 1. 能够有效地管理许多小型对象的分配和释放工作,避免了自己去管理内存而产生的内存碎片和效率低下问题。 2. 告别程序内存泄漏的烦恼,pool库会
2014-10-14 19:08:46
776
转载 MySQL C语言接口-预处理语句
对于多次执行的语句,预处理执行比直接执行快,主要原因在于,仅对查询执行一次解析操作。在直接执行的情况下,每次执行语句时,均将进行查询。此外,由于每次执行预处理语句时仅需发送参数的数据,从而减少了网络通信量 A:select * from tablenameB:select * from tablename服务器一般处理方式: A--->S--->A B--->
2014-10-14 19:07:18
819
原创 MySQL事务应用实例
// 连接数据库 $conn = mysql_connect("localhost", "root", "123456"); // 选择数据库 mysql_select_db("test", $conn); // 开始失误 mysql_query("start transaction"); // 添加主
2014-10-14 19:05:36
3013
转载 C++智能指针循环引用解决
循环引用示例#include "stdafx.h"#include #include #include #include using namespace std;using namespace boost;class CCycleRef{public: ~CCycleRef() { cout
2014-09-24 16:58:18
1354
转载 Tortoise SVN使用方法,简易图解(转)
刚到公司实习,为了版本控制,我公司使用SVN控制版本,在此记下SVN使用方法,仅供参考! 废话少说,上图!-------------------------------------------------------我是分割线--------------------------------------------------------------------
2014-09-24 14:28:55
851
转载 悬垂指针(Dangling pointer)和野指针(Wild pointer)
当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称悬垂指针(也叫迷途指针)。某些编程语言允许未初始化的指针的存在,而这类指针即为野指针。悬垂指针的成因:在许多编程语言中(比如C),显示地从内存中删除一个对象或者返回时通过销毁栈帧,并不会改变相关的指针的值。该指针仍旧指向内存中相同的位置,即使引用已经被删除,现在可能已经
2014-09-24 13:55:34
828
转载 explicit
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。
2014-09-24 13:28:36
770
转载 深入理解C++中的mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面
2014-09-24 13:17:22
622
翻译 "undefined reference to" 问题解决方法
(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(.o) 测试代码如下: 然后编译。gcc -c test.c gcc
2014-09-19 11:28:13
998
转载 boost中静态库编译没有-fPIC选项的问题解决方案
boost中静态库编译没有-fPIC选项的问题解决方案序章:问题 使用libboostpython.so动态链接是没有问题的,但是使用libboostpython.a静态链接,会产生如下错误:/usr/bin/ld: libboost_python.a(from_python.o): relocation R_X86_64_32 against`.rodata.str
2014-09-19 11:21:58
7925
转载 安装PHP常见错误解决error: libjpeg.(a|so),error: libpng.(a|so) not found,error: Cannot find ldap
2010-06-09 23:24:32| 分类: Linux秘籍|举报|字号 订阅果PHP的安装虽然有时候很简单,可是如应用一多,我们安装起来就很头痛了!常见的就是PHP插件的安装问题最多了! 其实不管是你是Apache类的应用还是Nginx类的.PHP的安装都不是很简单,虽然网上很多configure,但是那不一定是适合你的,因为很多 都
2014-09-18 10:35:17
3025
原创 Linux下C语言编程
#include #include#include#includestring.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;int number=0, i;void *thread1(){ printf ("thread1 : I'm thread 1\n");for (i =0; i
2014-09-12 11:25:21
762
转载 linux c++动态链接库so编写
Linux下的动态链接库是.so文件,即:Shared Object,下面是一个简单的例子说明如何写.so以及程序如何动态载入.so中的函数和对象。testso.h:#ifndef _TESTSO_H#define _TESTSO_Hextern "C" { int myadd(int a, int b); typedef int myadd_t(int, int);
2014-09-12 11:19:40
863
原创 gcc(g++)多文件编译
1.简单程序(单模块程序)的编译文件file1.c#include int main(){printf("hello\n");return 0;}文件file1.cpp#include using std::cout;using std::endl;int main(){coutreturn 0;}[xiaochen@fr
2014-09-12 11:19:09
1577
原创 Linux下C语言编程的-RPC远程调用编程
下面的例子程序的作用是客户端程序取中心服务器上时间的,编程过程如下:先编写一个 “ RPC 语言 ” ( RPC Language ( Remote Procedure Call Language ) ) 的源文件 test.x ,文件后缀名为 x 。源代码如下:program TESTPROG { version VERSION { string TE
2014-09-12 11:18:07
961
原创 CentOs安装Thrift
Thrift是Apache的一个开源的跨语言服务开发框架,它提供了一个代码生成引擎来构建服务,支持C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript,Node.js,Smalltalk,OCaml,Delphi等多种编程语言。一般来说,使用Thrift来开发应用程序,主要建立在两种场景下:第一,在我们开发
2014-09-12 11:16:26
2344
转载 thrift经常遇到的问题
thrift里自带的turoral,使用make编译时经常会报错,总结如下:1.如果出现如下错误: error: ‘uint8_t’ does not name a type error: ‘uint32_t’ does not name a type编译时需要加上:-DHAVE_NETINET_IN_H如果是在cdt
2014-09-12 11:13:47
2435
转载 Thrift简介及安装
【thrift是什么】thrift的全名叫做Apache thrift,是一款软件开发RPC框架,可以很高效地实现跨语言的RPC服务。如果你还不了解RPC是什么,赶快看看这里。如果想参观参观thrift的官方网站,请点击这里。【thrift生于何地】thrift最初生于Facebook,并茁壮成长,在2007年由Facebook正式开源出来,2008年由Apache软件基金会开
2014-09-12 11:08:40
901
转载 thrift编程案例
我用的是c++,所以我举一个c++的例子,简单说一下thrift的使用入门。例子描述是这样的:我们将学生信息(学号,姓名,性别,年龄)由客户端发送到服务端。实现这个例子,我们大致要做以下几部分事情:(1)书写.thrift文件(2)生成cpp文件(3)编写客户端(4)编译cpp文件并执行 (1)书写.thrift文件学生信息是有结构的,所以我们使用thrift的
2014-09-12 11:03:25
626
原创 cannot open shared object file: No such file or directory
总结下来主要有3种方法:1. 用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边ln -s /where/you/install/lib/*.so /usr/libsudo ldconfig2.修改LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/where/you/install/lib:$
2014-09-12 10:59:46
800
原创 运行locate无法找到mlocate.db的解决方法
问题# locate rc.conflocate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
2014-09-12 10:57:26
1140
转载 CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
准备篇1、配置防火墙,开启80端口、3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACC
2014-08-28 16:17:18
747
原创 No curses/termcap library found的解决办法
安装mysql出现以下问题:checking for termcap functions library... configure: error: No curses/termcap library found
2014-08-27 12:12:23
1276
原创 tar解压遇到的问题
今天在linux下 用tar -zxf xxx.tar.bz2然后就报这个错。gzip: stdin: not in gzip formattar: Child returned status 1tar: Error exit delayed from previous errors一开始我以为是压缩包坏的,去下其他的。下下来也是一样。然后仔细看了一下,原来这个压缩包没有用gz
2014-08-27 11:21:25
883
转载 LNMP(linux+nginx+mysql+php)服务器环境配置
一、简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发的,它已经在该站点运行超过三年了。Igor Sysoev在建立的项目时,使用基于BSD许
2014-08-27 10:02:26
768
原创 nginx常见的启动错误
错误一:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
2014-08-26 17:29:03
1079
转载 CentOs的网络环境配置
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 路由器网关:192.168.1.1 步骤: 1.查看网络MAC地址 [root@centos ~]# cat /etc/udev/rules.d/70-persistent-net.rules 显示如下信息 # PC
2014-08-26 14:34:35
541
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人